Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

7 Neutral

About catlegs

  • Rank
    Combat Commando

Profile Information

  • Gender
  • Location
    Flyover Country
  • Interests
    Application Programming, Embedded Programming, Music, Philosophy, Pharmacology, Comedy

Recent Profile Visitors

2,108 profile views
  1. catlegs


  2. Well, I'll post some source but it's not commented well yet. Life has gotten in the way of me working on projects for fun. Somewhat from scratch. Most of the SFX are ripped from the NES version with me using my best judgement on what to keep while working within the limitations of the TIA. The sound player basically works like this. Sounds are stored with 2 bytes for every note/rest. The first byte is how many frames long the sound should be played, if this value is read and ends up being $FF then the sound is over since we have reached the stop byte. The second byte is the voice/distortion (3 bits) and the frequency (5 bits). Currently the voice is in the most significant 3 bits, but I could save a few cycles in my sound player if I put it in the least significant 3 bits. Any volume information is omitted for the sake of space, so notes/sounds being played are assumed at full volume, unless it is a rest, then volume is set to off. Sounds are updated once per frame. Each sound channel uses 5 bytes of RAM to store the information of what needs to be played (10 bytes total) a 2-byte address (pointer) that stores where in ROM the sound is located. a 1-byte note counter that indicates which note/rest in the sound should be played. a 1-byte frame counter that indicates how many frames of the current not that have already been played. a 1-byte looping flag that indicates whether or not when the end of the sound is reached to mute the voice or go back to the beginning and play the sound again. Due to timing constraints, sounds must not cross pages. There is also a table of sounds that store the address of where the sounds are stored in ROM. There is a table of voices. galagaSoundPlayer.asm is the actual sound player galagaSounds.asm includes the tables and all of the sounds vcsSoundsNTSC.h includes definitions that make writing the music much easier. (EDIT: i had to rename it to vcsSoundsNTSC.asm because for some reason I'm not allowed to attach a .h file) galagaSoundPlayer.asm galagaSounds.asm vcsSoundsNTSC.asm
  3. Just checked and it worked fine for me. They're raw binaries, you'll be able to see them in Stella's internal browser. I'm planning on getting a 2600 and harmony cart as soon as I have extra money that doesn't have to go toward student loans Thanks for the feedback so far guys.
  4. Before anyone gets too excited let me say that NO I have not created a Galaga port for the VCS and the day when (if) it becomes a reality is very far off. However, I have made some sound effects and music and written a player, plus wrapped it up in a nice presentation. I'm new to programming the VCS, so I still have a ton to learn before making Galaga is anywhere near possible for me, but reading up on it over the past 3 weeks or so has gotten me very interested in writing new software for a machine that is 12 years older than I am. There are three kernels at work here; the scrolling logo, stationary logo with blinking "Press Fire Button", and the sound test screen. Resetting the program at any point is supported. Select toggles whether the sound/music should be looped when on the sound test screen (the voices for sounds 2 and 3 will get out of sync if looped). The left/right directions of the left joystick cycles through the sounds/music, and fire causes the selected sound/music to play. The sound effects are based off of the NES version and use only square waves (except for the ship explosion sound, which uses the noise wave). All of the sounds/music fit tightly into 1k, and another 56 bytes is used for a table of pointers to all of the different sounds. I haven't tested it on real hardware yet, as I haven't had a 2600 around since I was a kid, and I don't have a harmony cart, so if anyone wants to try it out on theirs and report back I'd appreciate it. Sound/music listing: 0 - Main theme 1 - Enter challenging stage 2 - Challenging stage completed 3 - Challenging stage completed perfectly 4 - Fighter captured by Boss Galaga 5 - Fighter retrieved from Boss Galaga 6 - Captured fighter destroyed by player 7 - Extra life 8 - Kill Butterfly 9 - Kill Bee 10 - Hit Boss Galaga 11 - Kill Boss Galaga 12 - Tractor Beam extended 13 - Caught in tractor beam 14 - Enemy transforms 15 - Enemy dive bombs 16 - Fire missle 17 - Ship explosion 18 - Place badge I'll add the source to my sound player after I clean the code up a bit and comment it better if anyone is interested. Here's a youtube video of me demoing the NTSC version in MESS: http://www.youtube.com/watch?v=9Uap0HZ7DBg galagaSoundTestPAL.a26 galagaSoundTestNTSC.a26
  • Create New...