-
Posts
1,353 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Posts posted by newcoleco
-
-
Of course, you do have my permission.
-
This link was requested by Peter Boon.
It's a slideshow demo made more than 3 years ago using 4 different data compression : Pletter, Dan1, Dan3, and ZX7.
Because Dan1 and Dan3 were made to focus on bitmap screens, and Dan3 for full screen pixelart and pictures with dithering, Dan3 performs better in this demo.
However, because we tend to draw graphics in a way to somewhat be simple to compress, Dan2 is a better option for our game projects, often better than Pletter.
https://drive.google.com/file/d/1x6r7YHc65ViaXp_VkApPwngLivFeJdso/view?usp=sharing
- 3
-
This is a patched CCI3 source code with its compiled version to replace the one in the devkit.
It somewhat bypass the "coleco.h no such file or directory" issue I'm having right now that I've never seen before.
-
On 3/27/2020 at 5:43 PM, doubledown said:
Amy, I tried to send you a PM here, but it was kicked back that you couldn't receive messages. Please get it touch with me when you have a minute.
Sorry. My mailbox here was always a problem. I will try to free space and contact you.
-
On 1/18/2020 at 3:26 PM, ChildOfCv said:
Is this a Colecovision software limitation? Because the datasheet for the sound chip doesn't mention any interaction between channel 3 and noise.
Well, I'm finally in the process of writing diags for the sound chip, so I guess I'll find out soon enough.
It's a hardware thing. The sound chip specifications are telling us that we can use the "frequency" data from the channel tone 3 as an input for the noise channel if this one is set for it. I do use this "peculiar chemistry" in all my ColecoVision musics. The mode 3 on the noise channel is called PERIODIC NOISE tuned with the TONE 3 (sort of) to produce a BASS instrument sound. The mode 7 on the noise channel is called WHITE NOISE tuned with the TONE 3 channel, allowing for cool explosions sound effects without being limited to only 3 presets of white noises.
-
On 11/7/2019 at 4:59 PM, Swami said:
You have my support as well Amy/new coleco. BTW, are you intending to not accept messages? I tried to PM you.
I didn't see your PM. have you tried on Facebook or here?
-
3 hours ago, Mike Harris said:
Pretty damn good....
Just as a viewer from the outside looking in...
Can that be adapted to a working game or does it take the entire processing power of the Colecovision?
I can pretty much guarantee you that not one of the original developers of the Colecovision would have ever dreamed this was possible.
Can you imagine if this kind of music came out from the beggining.Coleco would have dominated the market.
Thank you!
Beside decoding the data written in the new format I've invented, and using a little bit of RAM to store pointers and instrument codes, these sounds are played by the ColecoVision BIOS sounds routine. Therefore, this doesn't use that much extra CPU power than regular CV sounds. By exploiting the BIOS power, I was able to plugin my routines and avoid adding too much codes in the ROM. All the sounds priorities and effects are for the most part from within the BIOS.
In other words, this could have been implemented and used back in the 80s without a doubt.
- 1
- 1
-
15 hours ago, Tony Cruise said:
Code now working for all three platforms i.e Colecovision, MSX and Spectravideo, article complete, just need to get a break from family stuff to actually record it
You are fast!
Meanwhile, after hours of work, I've finally fixed a special tiny sounds routine bug and converted (most of) my ColecoVision Commando music based into tiny sounds. It sounds similar to the original without some nuances only possible by coding every notes by hand.
More than half the data size was saved by using this new format.
Bugfix : Removed the unneeded RESET " (ix+7),0 " that was stopping the special code 3 to play fully if the duration was more than 1 unit of time. This is important for the special drum code 0xfe and the freq and volume swept code 0x03 (see CV BIOS sound format).
Music Commando (src) with updated tiny sounds routines : TinyMusic - Commando - src.zip
Music Commando (bin) both original and tiny sounds versions : TinyMusic - Commando - bin.zip
- 1
- 1
-
8 hours ago, Mike Harris said:
My real fantasy would be if someone had the file and sound format to Video Tunes so we could use that to compose and retrieve the logic in Assembly.
There is a guy on Youtube named Steve Simpson that says he programed Video Tunes and I have reached out to him with zero success.I have no idea what is Video Tunes.
-
On 8/8/2019 at 3:03 AM, Mike Harris said:
I don't suppose you could create a simple interface that you type in a series of notes from some sheet music or a simple tune then it outputs compileable assembly code...
Just checking.Music and Sound effects seem to be the hardest part of Coleco programing.
One step at a time - I'm getting closer to a stable sounds player with vibrato and arpeggio support.
This is just a spark, an idea of routines based on my way to compose music with a bonus of data optimization.
My goal is to code something stable I will use myself to compose even more music in the future.
And if there is any interest in using this experimental sounds format to compose musics, I'm sure talented programmers will figure out a way to make it easier to use.
- 1
-
Fixed an out-of-sync issue by simply make sure the duration counter in the init sound routine is reset to zero before trying to play any note.
Version 0.3 Alpha (just the tiny sounds routines again) : sndtiny.zip
This version seems stable enough to try adapting part (about 5K data) of my compositions to tiny sounds format. I've selected the hardest one to adapt which is the elaborated Commando Chiptune music. There will be differences in the sounds quality of course but it should be close enough. And since I keep the bass and drum sounds data as is from the original composition, only the melody will be affected by this experiment. And, because of all these notes with arpeggio everywhere that were coded into multiple sounds swept codes for each note, tiny sounds format will make a big difference in size, like saving 20 or more bytes per 12 cycles duration notes. The size of the tiny sounds routines should be worth it right at the start of the Commando music.
To be continued...
-
Tested and... I've spotted some issues in version 0.1 Alpha including an incorrect "6 bits code to 12 bits period" conversion, and also other bugs I'm not sure how to fix at the moment.
Will work on it again another day.
Version 0.2 Alpha (just the tiny sounds routines file) : sndtiny.zip
-
Hello everyone!
In 2018, I was working on a way to add music data as small as possible in my future projects without typing each note as a frequency and a volume effect. As a bonus, I've also considered to add vibrato and arpeggio support which sure increase the code size but do provide a richer sound experience.
To achieve this, I've simply extended the CV BIOS sound format by using its sound type 4 which is just a call to a routine. The routine is reading differently the sound data as my proposed new tiny sound format which reduces to (almost) 1 byte each note. I've coded this routine based on my needs and the way I compose music. Some details are written in the "sndtiny.asm" source file, and you are invited to look and modify the data in "snddata.asm" to figure out by yourself how the notes are coded.
The way I code music in my projects in based on CV BIOS sound format, the channels 0 and 3 are working together to play NOISE and BASS notes in a loop, these channels are not affected by this new format. The channels 1 and 2 are the melody channels and those do benefit from this new format by quite a lot for long music composition.
I have trouble to make this new sound format work with my music_update routine, so I'm also considering to write a more stable music sequencer in the future.
The source code is entirely in assembly code and uses keywords only used by tniasm assembly cross-compiler. But it can be easily adapted to be compiled by other cross-compilers.
Version 0.1 Alpha : TINYMUSIC.ZIP
Version 0.5 Alpha (bugfix) : sndtiny.zip
- 6
- 1
-
Quick recap: I'm the author of many devkit tools including graphics, sounds, and data compression, and a couple of original homebrew titles like Jeepers Creepers and Ghost Blaster, and musics like Crazy Train, Jump, Poker Face, Commando, GhostBusters, Space Harrier, Toto, Safety Dance, and Duck Tales. This February 2019 was the 20th year of my first CV game from scratch titled Breakout; not a great game but simple and in french. I've started to make tools and rom hacks since 1996, so more than 20 years ago, my ColecoVision coding passion started.
Dear Coleco friends,
I've been again inactive for months in the ColecoVision scene, sorry about that.
I love thinking about composing musics and ways to bring some projects back to life after years on ice. But for now, I've nothing in progress.
The reason I'm writting this message, is to inform you that I'm alive, and I'm also going through a big change.
It will be a shock for some who haven't seen my Facebook page in March this year before it got blocked. I can't deny who I am anymore; I'm doing a transition from Daniel to Amy. The name is changed legally, and I've psychiatric and medical support for almost a year now. I stay the same person, I'm just having some physical and emotional changes.
I suppose my godfather title is no more valid, but feel free to keep using it.
Thanks for your support and appreciation of my work through all these years!
Best regards
- 23
- 1
-
Sorry to vanish for months. Personal reasons that I will explain in another post.
I hope you managed to figure out how to do your codes.
-
Does anyone know what happened to ADAMCON.ORG?
I used to get lots of source material for programing and it went bye bye
Dale Wick is the one dealing with the website ADAMCON.ORG
Real life is very important and busy for him, so the website (server) is kinda not up and running and that's expected when you focus your energy on something else.
Perhaps we can contact him by sending an email or even a personal message on Twitter.
-
Well, if I am going to use up all 32k I want to give as much as I can.
The maps I am producing for my first completed coleco game are so bland that all of this could be done in video mode 1.
I personally have a sense that it would be lazy to render such bland graphics using 32k when there are games like Pitfall 1 and 2 that have so much in them.
Also by developing this system of mapping it will be future proof for my second project.
I will also hint that what I am doing are ports that have never been done on a Colecovsion and I hope you guys will be presently surprised.
Already into memory space optimization? and planning ahead to reuse that strategy for a second project? You already impress me!
We all reach a point in our projects that either force us to simplify some parts (cut a music, a cutscene, some graphics, a level, etc.), to find clever ways to optimize the available space (data compression), or to consider bank-switching (one of the hardware solutions to everything). In the 80s, to minimize the production cost, games were released quickly (don't wanna pay workers for too long) and had to fit into 8K, 16K or at most 24K, which forced to cut parts of the games and use basic clever data compression like a mirror effect, a color swap, and a run-length encoding. The ColecoVision BIOS was made in a way to help reducing codes needed in the game cartridges; it has many clever routines available and some still to be explored by homebrewers, but no data compression routine... or is it? No there isn't any data compression routine in the BIOS, but there are graphics tricks including a rotation or mirror effect, and a few other things. With time, I needed better and better data compression, I wanted to push the limits, and I've developed my own tools. Quite frankly, I may have hurt my head too much, but it was worth it - very satisfying when things just work!
Good continuation!
-
The first CCI was in a weird programming language no more supported. After that, my devkit changed to stop using commercial product Hi-Tech C cross-compiler and I've used Java as a programming language for the 3rd version of CCI because it's a programming language possible for many platforms and used with success for decades already.
CCI is basically just a user-friendly way to avoid typing command-lines by creating ".BAT" files according to what you click to compile and link. I suggest that you make your own batch files based on the SDCC documentation which can do more than what CCI allows you to do.
Really, CCI is just a time and headache saving for me to compile my ColecoVision projects and I shared that tool as is. Sorry, it's not in a language you like.
Ideally, there should be a way to make an IDE support SDCC compiler and color-code Z80 opcodes to compile ColecoVision projects, but I don't know any, and I don't know if any can be used with my good old devkit libraries.
Good luck!
Is it possible to have a version that does NOT use Java?
Some people just view Java as a waste of time and valuable resources when there is 100% no need for it to have any life in windows.
So many tools out there and people for some reason want to add another layer to an already working system>
I had the same argument about the Magic User Interface for the Amiga.
What ended up happening is everyone started using that instead of developing native programs so you have to use that extra layer in order to go online. -
Your assembly Hello tutorials work great, Dev kit is no longer on your site plus everything is out dated relying on old operating system.
I can find no link to contact you on your website or youtube channel so I will post it here.
It would be the greatest thing if you posted your notes, tutorials or what not for a complete Coleco Programing guide.
I would love to create a game but nothing for coleco has been modernized and despite the other gentleman updating the library the dev kit is still 10 years old.
It's never perfect, but my devkit includes multiple code samples, projects I've made in the past, which I hope can be compiled with a newer version of SDCC (I don't know for sure). You can find documentation online, but I've hardly any free time to work on tutorials and documentation anymore.
Good luck!
A link to my devkit, January 2018 version: https://drive.google.com/open?id=1ACw34Ch5VI59irnxxgyMlF_Az2UBYDYO
-
Hello,
Without seeing your source code and the version of the devkit you are using, it is difficult to identify exactly the issue.
But, to be sure to remove any glitch causing some VRAM corruption, I would try this:
Init. like this... disable_nmi(); screen_mode_1_text(); /* screen graphics mode 1 and clear screen (old version also set screen on by default) */ screen_off(); /* in case using an old version of screen_mode_1_text */ disable_nmi(); /* always good to be sure NMI is disable before a massive VRAM update */ fill_vram0(0x2000,0x1800,0xf0); upload_default_ascii(NORMAL); paper(COLOR); /* is COLOR value set somewhere? */ /* cls(); - is good but not needed. See screen_mode_1_text description */ screen_on(); enable_nmi(); /* always good to enable NMI only after all the VRAM manipulations */ And if it's a case of NMI triggered during VRAM manipulation that causes the glitch. delay(1); /* Update VRAM right after NMI interupt is done, so wait a bit */ disable_nmi(); /* You may also want to disable NMI, but should not be necessary */ print...; print...; enable_nmi(); /* once all the print text on screen is done, enable NMI */ This way, you should avoid graphic glitches caused by NMI... as much as possible.
Good luck!
Hi, I just finished building myself a multicart, following the very cool project by these French guys:
I was able to successfully build the loader (after modifying some bits), assembled with all the roms and burned to PROMs.
Now, if I run the multirom image in mame, everything works perfectly. This is a screenshot of the loader:
I can browse the games, and upon firing, the correct ROM is started.
But if I place the cart into my real Coleco (a French model), I get the following:
The loader does actually work. I can scroll up and down (the left-most character moves accordingly), and upon firing the correct rom is started. But instead of a readable game list I just get mostly gibberish.
The loader initialized the screen like this:
disable_nmi(); screen_mode_1_text(); fill_vram0(0x2000,0x1800,0xf0); upload_default_ascii(NORMAL); paper(COLOR); enable_nmi(); cls(); screen_on();
While text is printed to screen with print_at() and center_string() calls.
Am I missing something?
Also, in the emu, upon resetting I get back to the loader, while on the actual CV, reset restarts the currently selected game, and I need to actually turn off and on again the CV to get back to the loader.
Thanks for any suggestions!
-
Perhaps this list I've compiled in 2010 from the official Coleco Industries CV programming documents will give you and new CV homebrewers an idea of what is hidden in the ColecoVision BIOS. Please note that it is not necessary to use any of this to make a CV game working properly, but it is quite powerful and useful routines that can save us time coding and space in game cartridges.
ColecoVision BIOS is also refered as OS 7prime, also refered simply as OS7. * because it was the 7th revision of the BIOS when the console was released OS 7prime BIOS Jump table Note: P (at the end): special entry points for Pascal programs. 1F61 > 0300 : PLAY_SONGS 1F64 > 0488 : ACTIVATEP 1F67 > 06C7 : PUTOBJP 1F6A > 1D5A : REFLECT_VERTICAL 1F6D > 1D60 : REFLECT_HORIZONTAL 1F70 > 1D66 : ROTATE_90 1F73 > 1D6C : ENLARGE 1F76 > 114A : CONTROLLER_SCAN 1F79 > 118B : DECODER 1F7C > 1979 : GAME_OPT 1F7F > 1927 : LOAD_ASCII 1F82 > 18D4 : FILL_VRAM 1F85 > 18E9 : MODE_1 1F88 > 116A : UPDATE_SPINNER 1F8B > 1B0E : INIT_TABLEP 1F8E > 1B8C : GET_VRAMP 1F91 > 1C10 : PUT_VRAMP 1F94 > 1C5A : INIT_SPR_ORDERP 1F97 > 1C76 : WR_SPR_NM_TBLP 1F9A > 0F9A : INIT_TIMERP 1F9D > 0FB8 : FREE_SIGNALP 1FA0 > 1044 : REQUEST_SIGNALP 1FA3 > 10BF : TEST_SIGNALP 1FA6 > 1CBC : WRITE_REGISTERP 1FA9 > 1CED : WRITE_VRAMP 1FAC > 1D2A : READ_VRAMP 1FAF > 0655 : INIT_WRITERP 1FB2 > 0203 : SOUND_INITP 1FB5 > 0251 : PLAY_ITP 1FB8 > 1B08 : INIT_TABLE 1FBB > 1BA3 : GET_VRAM 1FBE > 1C27 : PUT_VRAM 1FC1 > 1C66 : INIT_SPR_ORDER 1FC4 > 1C82 : WR_SPR_NM_TBL 1FC7 > 0FAA : INIT_TIMER 1FCA > 0FC4 : FREE_SIGNAL 1FCD > 1053 : REQUEST_SIGNAL 1FD0 > 10CB : TEST_SIGNAL 1FD3 > 0F37 : TIME_MGR 1FD6 > 023B : TURN_OFF_SOUND 1FD9 > 1CCA : WRITE_REGISTER 1FDC > 1D57 : READ_REGISTER 1FDF > 1D01 : WRITE_VRAM 1FE2 > 1D3E : READ_VRAM 1FE5 > 0664 : INIT_WRITER 1FE8 > 0679 : WRITER 1FEB > 11C1 : POLLER 1FEE > 0213 : SOUND_INIT 1FF1 > 025E : PLAY_IT 1FF4 > 027F : SOUND_MAN 1FF7 > 04A3 : ACTIVATE 1FFA > 06D8 : PUTOBJ 1FFD > 003B : RAND_GEN OS 7prime BIOS Symbols 0069 AMERICA 60 = NTSC, 50 = PAL 006A ASCII_TABLE Pointer to uppercase ASCII pattern 006C NUMBER_TABLE Pointer to numbers 0-9 pattern 00FC FREQ_SWEEP Frequency sweep 012F ATN_SWEEP Attenuation sweep 0190 DECLSN Decrement low nibble (in UTILITY) 019B DECMSN Decrement high nibble (in (UTILITY) 01A6 MSNTOLSN Copy high nibble to low nibble (in UTILITY) 01B1 ADD816 Add signed 8bit value A to 16bit [HL] 01D5 LEAVE_EFFECT Called by a special sound effect function when done 02EE EFXOVER (in PROCESS_DATA_AREA to get next note) 07E8 PX_TO_PTRN_POS Pixel to pattern plane position 080B PUT_FRAME Copy a block of names to VRAM 0898 GET_BKGRND Copy a block of names from VRAM to RAM 08C0 CALC_OFFSET Returns DE := offset for the coordinates (E,D) 1D43 CTRL_PORT_PTR (in READ_VRAM, equal I/O port# BF) 1D47 DATA_PORT_PTR (in READ_VRAM, equal I/O port# BE) 1D6C ENLRG It is the local name of the ENLARGE routine OS 7prime External symbols in RAM (7000-73FF) 73B9 STACK Stack pointer address 73C3 VDP_MODE_WORD Copy of the first two VDP registers 73C5 VDP_STATUS_BYTE Contents of default NMI handler 73C6 DEFER_WRITES Boolean flag to defer writes to VRAM 73C7 MUS_SPRITES Boolean flag to sprite multiplexing 73C9 RAND_NUM Pointer to pseudo random number value in ROM (game cartridge header) 8000 CARTRIDGE Cartridge starting address 8002 LOCAL_SPR_TABLE Pointer to sprite name table 8004 SPRITE_ORDER Pointer to sprite order table 8006 WORK_BUFFER Pointer to temporary storage in RAM 8008 CONTROLLER_MAP Pointer to controller memory map 800A START_GAME Pointer to game start code 800C RST_8H_RAM Reset 8 soft vector 800F RST_10H_RAM Reset 10 soft vector 8012 RST_18H_RAM Reset 18 soft vector 8015 RST_20H_RAM Reset 20 soft vector 8018 RST_28H_RAM Reset 28 soft vector 801B RST_30H_RAM Reset 30 soft vector 801E IRQ_INT_VECT Software interrupt vector (RST 38H) 8021 NMI_INT_VECT NMI soft vector 8024 GAME_NAME String of ASCII characters
- 3
-
Uh oh. I lost my local copy of the tool, and the link at http://eriscreations.com/downloads/CVSoundFX.zipappears to now 404. Where else can I get a .zip?
Thanks.
Close, but no cigar :-(
https://web.archive.org/web/20140813004700/http://newcoleco.dev-fr.org/
During the past 8 years, I'm having bad luck with technology; I lost 3 computers and various HDD including the one containing a copy of my blog. This issue erased part of my 20 years of coding.
Anyway, here's the missing download file, but not sure which version it is.
EXE + SRC
- 3
-
I use CV Sound Bank from Daniel Bienvenu when i need a sound. You can find in it a huge library of sound used in colecovision games.
Can you share it ? my version of CV sound bank does not have a lib of sound.
http://atariage.com/forums/topic/279886-devtool-colecovision-os7-sound-bank-2005/
-
Once upon a time, more than a decade ago, a collection of sounds and music of various ColecoVision released games was put together with the best sound chip simulator of the time I've coded in Java, better than any emulator back then.
Here's an archive of that web page with files.
Download: soundbank.zip
Unzip everything in a single folder, unzip the soundbanks, but do not unzip the .gz files. Then execute either the CVBANK.JAR or the CVBANK.EXE file.
Enjoy!
- 1
CV Sound Emulator in pure Javascript for Web and apps
in ColecoVision Programming
Posted
GitHub source: https://amypurple.github.io/cvsoundjs/
CV Sound OS7 (amypurple.github.io)