Coding demos on Intellivision console !
category: code [glöplog]
In case of you want to test yourself at oldskool hardcore coding (I did not try yet, just ordered one, I hope as fun as on the Atari VCS), a new "programming" cartridge was just released done by an AtariAge member:
http://ltoflash.leftturnonly.info/
Reminder (wikipedia):
General Instrument CP1610 16-bit microprocessor CPU running at 894.886 kHz in NTSC version, and full 1 MHz in PAL/SECAM models
1456 bytes of RAM:
- 240 × 8-bit scratchpad memory
- 352 × 16-bit (704 bytes) system memory
- 512 × 8-bit graphics RAM
- 7168 bytes of ROM:
- 4096 × 10-bit (5120 bytes) executive ROM
- 2048 × 8-bit graphics ROM
Standard Television Interface Chip (STIC): General Instrument AY-3-8900/AY-3-8900-1
159 pixels wide by 96 pixels high (159x192 display on a TV screen, scanlines being doubled)
16 color palette, all of which can be on the screen at once
8 sprites. Hardware supports the following features per-sprite:
Size selection: 8×8 or 8×16
Stretching: horizontal (1× or 2×) and vertical (1×, 2×, 4× or 8×)
Mirroring: horizontal and vertical
Collision detection: sprite to sprite, sprite to background, and sprite to screen border
Priority: selects whether sprite appears in front of or behind background.
Three-channel sound, with one noise generator (audio chip: General Instrument AY-3-8914)
http://ltoflash.leftturnonly.info/
Reminder (wikipedia):
General Instrument CP1610 16-bit microprocessor CPU running at 894.886 kHz in NTSC version, and full 1 MHz in PAL/SECAM models
1456 bytes of RAM:
- 240 × 8-bit scratchpad memory
- 352 × 16-bit (704 bytes) system memory
- 512 × 8-bit graphics RAM
- 7168 bytes of ROM:
- 4096 × 10-bit (5120 bytes) executive ROM
- 2048 × 8-bit graphics ROM
Standard Television Interface Chip (STIC): General Instrument AY-3-8900/AY-3-8900-1
159 pixels wide by 96 pixels high (159x192 display on a TV screen, scanlines being doubled)
16 color palette, all of which can be on the screen at once
8 sprites. Hardware supports the following features per-sprite:
Size selection: 8×8 or 8×16
Stretching: horizontal (1× or 2×) and vertical (1×, 2×, 4× or 8×)
Mirroring: horizontal and vertical
Collision detection: sprite to sprite, sprite to background, and sprite to screen border
Priority: selects whether sprite appears in front of or behind background.
Three-channel sound, with one noise generator (audio chip: General Instrument AY-3-8914)
Awesome :) - I was looking into Intellivision back in 2008 or so, but was blocked by the lack of proper dev hardware. Looks like this should solve the problem then. I'm very interested to see what people can make on it, as it should pretty nicely compare to the VCS and even have enough ram for lookups and precalcs! :) Also the sound hardware is obviously much much nicer to deal with as a musician.
Intellivision's CPU is hard to code for. Lots of wasted space: Only 10 bits of each 16-bit word are used, and some instructions are three words (6 bytes) long (!), leading to some really slow execution. At least the sprite stretching/mirroring is cool. Also, the AY-3-8914 is better than your typical PSG because it has a hardware envelope generator that can be abused by setting it to very high frequencies which can generate non-square waveforms.
Cool! Nice to see flashcarts being made available for almost all of the old systems nowadays.
Lots of cool platforms left to explore! :)
Lots of cool platforms left to explore! :)
where is coding?
I'm waiting for it since a year :P My first console, exciting! The german store RetroGamesShop should have a new batch next week.. (Joe wrote me he sent the batch the 8 sept. He might sent an email to every contact next week)
Some demos:
http://www.pouet.net/prodlist.php?platform[]=Intellivision&page=1
Knox's old pouet comment:
"SDK-1600 by Joe Zbiciak, which is now part of jzIntv 1.0"
http://spatula-city.org/~im14u2c/intv/
Some demos:
http://www.pouet.net/prodlist.php?platform[]=Intellivision&page=1
Knox's old pouet comment:
"SDK-1600 by Joe Zbiciak, which is now part of jzIntv 1.0"
http://spatula-city.org/~im14u2c/intv/
Thanks Buckethead for the link ! This SDK looks pretty interesting !
Good way to start !
And yep it looks like this cartridge has a pretty impressive success (I mean more than his author's expectation), that's good news. I'm sure Sdw will impress us another time ;-)
Good way to start !
And yep it looks like this cartridge has a pretty impressive success (I mean more than his author's expectation), that's good news. I'm sure Sdw will impress us another time ;-)
Yes Shazz :) everything seems there to cook some demos, games, even music: I wonder about about the AY. It can make better noise that the CPC?.. Is it stereo even if I only have the RF version of the Mattel.
I saw people got the first batch on the Atariage forum and was 2 days late @X!! ;Pp
I saw people got the first batch on the Atariage forum and was 2 days late @X!! ;Pp
The AY is definitively the first thing I will play with. I will also test Inty - Spirit's demo to see how Cybernoid II song plays thru the coax :)
SOUND CHIP
The sound chip is a GI AY-3-8914. This chip contains three separate channels of sound, each channel of which can be individually controlled for frequency and volume. There is also a noise generator on the chip, which can be added to any of the three channels. All three channels are mixed, and fed to the sound output of the TV.
from http://www.intellivisionlives.com/bluesky/hardware/intelli_tech.html#sound
So I guess this is mono like the STF...
The sound chip is a GI AY-3-8914. This chip contains three separate channels of sound, each channel of which can be individually controlled for frequency and volume. There is also a noise generator on the chip, which can be added to any of the three channels. All three channels are mixed, and fed to the sound output of the TV.
from http://www.intellivisionlives.com/bluesky/hardware/intelli_tech.html#sound
So I guess this is mono like the STF...
very interesting toy )
buckethead, you should have asked me :) I live in the US but I go back to France sometimes :)
Quote:
Also, the AY-3-8914 is better than your typical PSG because it has a hardware envelope generator that can be abused by setting it to very high frequencies which can generate non-square waveforms.
All the AY-3-891x have this, so it's the same as on ZX and Amstrad CPC, and the YM2149 used on Atari ST. At least there's no need to write a new tracker :)
Shazz: thx for the offer :) ..
There's an interresting post on atariage. http://atariage.com/forums/topic/228141-lto-flash-intellivision-flash-cartridge-information/page-53
(I think most of us have the classic woody Intellivision, so it's only AY-3-8914 and maybe AY-3-8914A? :))
intvnut
There's an interresting post on atariage. http://atariage.com/forums/topic/228141-lto-flash-intellivision-flash-cartridge-information/page-53
(I think most of us have the classic woody Intellivision, so it's only AY-3-8914 and maybe AY-3-8914A? :))
intvnut
Quote:
Well, $0FFF, since the period is only 12 bits, but yes, I believe that would fix it.
Right now, in the cramped LTO Western Manufacturing Facility & Coffee Emporium, I only have an INTV System III and one Intellivision II to test with (not sure what PSG is in it off-hand). (EDIT: And an ECS. Can't forget that.) At some point I'd like to write a PSG Test Battery, so we can catalog all the variations we're aware of. So far as I know, there's four PSG variants used in the Intellivision and peripherals:
AY-3-8914
AY-3-8914A
AY-3-8916
AY-3-8917
Among the four variations, I know of the following differences / potential differences:
6-bit vs. 5-bit volume register (2-bit envelope volume shift vs. 1-bit envelope select)
Down count and reload at 0 vs. up count and reload based on comparison
Bidirectional I/O ports vs. read-only input ports
Zeroes in unused bits vs. I/O port data bleeding through in unused bits. (May vary depending based on Direct Mode vs. Indirect Mode access, too.)
Different starting address ($1F0 for AY-3-8914/8914A/8916, $0F0 for AY-3-8917).
And then there's the TutorVision, which uses an AY8930...
Some of these variations can be tested for in software, I think. But others will require a human to listen.
PulkoMandy, do you plan to port a CPC Tracker replayer sourcecode ? Or said differently, which AY/YM "cross"-tracker would you use ?
All the trackers I know have playroutines written in z80 assembler, which is not of much help for the Intellivision.
I can think of Arkos Tracker and Vortex Tracker, there may be more.
Arkos Tracker can export an "YM" file, which is a dump of the AY registers at each frame. This may be simpler to use than the complete player code, with the tradeoff that the YM file is quite large as there is no compression. On Atari ST, YM files are compressed with the LHA algorithm, decompressing this on CPC would waste too much resouces. So, for playing on CPC, a different compression algorithm is used, which allows for fast streaming decompression. Look for the YM Cruncher and Kit-AYC (http://www.cpcwiki.eu/index.php/AYC).
Or you can have a try at porting the Arkos Player to the intellivision CPU: https://github.com/pulkomandy/znax/blob/master/code/src/ArkosPlayer.z80
And of course there's always the option of looking at older trackers running on the CPC itself: Starkos (but Arkos Tracker can import the songs from there), AMC (but no one except the coder can use it), Equinoxe (but the player wastes an improbable amount of machine cycles), and a few more. Using Atari ST software should also be possible, but I have less knowledge about that.
I can think of Arkos Tracker and Vortex Tracker, there may be more.
Arkos Tracker can export an "YM" file, which is a dump of the AY registers at each frame. This may be simpler to use than the complete player code, with the tradeoff that the YM file is quite large as there is no compression. On Atari ST, YM files are compressed with the LHA algorithm, decompressing this on CPC would waste too much resouces. So, for playing on CPC, a different compression algorithm is used, which allows for fast streaming decompression. Look for the YM Cruncher and Kit-AYC (http://www.cpcwiki.eu/index.php/AYC).
Or you can have a try at porting the Arkos Player to the intellivision CPU: https://github.com/pulkomandy/znax/blob/master/code/src/ArkosPlayer.z80
And of course there's always the option of looking at older trackers running on the CPC itself: Starkos (but Arkos Tracker can import the songs from there), AMC (but no one except the coder can use it), Equinoxe (but the player wastes an improbable amount of machine cycles), and a few more. Using Atari ST software should also be possible, but I have less knowledge about that.