Jump to content

DZ-Jay

+AtariAge Subscriber
  • Posts

    14,930
  • Joined

  • Last visited

  • Days Won

    21

DZ-Jay last won the day on December 30 2016

DZ-Jay had the most liked content!

5 Followers

About DZ-Jay

  • Birthday 12/13/1970

Profile Information

  • Custom Status
    The P-Machinery AGE is almost here!
  • Gender
    Male
  • Location
    NC, USA
  • Interests
    Music, books, video games, and programming.
  • Currently Playing
    Various Intellivision games...
  • Playing Next
    Some more Intellivision games...

Recent Profile Visitors

45,865 profile views

DZ-Jay's Achievements

Quadrunner

Quadrunner (9/9)

8.2k

Reputation

  1. No worries. I just got home and took a look at it. The constant is TRK_ENABLED_6_CHN. "1" means six channels, "0" means three. I also noticed that I had removed the average cycle count usage from the header comments because I got tired of profiling it on every release. LOL! That being said, the version you have (1.5 rev.4) is highly optimized in assembly to ensure the highest performance for what it does. So, if you have performance issues using it, send me a PM and I'll try to see how I can help. If you are not opposed to peppering your game code with Assembly Language routines, I can help you translate your most costly procedures to optimized assembly code. I'm sort of good at that. -dZ.
  2. If you are tight on resources, then I would recommend not using 2.0, since I haven’t had a chance to optimize it yet. 😅 I believe version 1.5 has the resource requirements in the source code header comments, in the file “tracker.asm.” If not, I can profile it for you later today. Just know that it depends on the number of active channels and the complexity of patterns per channel. Are you using IntyBASIC or Assembly? If the former, you should avoid the MUSIC commands if you intend to use the IMT tracker, since they both consume about the same resources. Also, let me know if you need help with optimization. I intend to re-write the document with a more clear description of how to make music. At the time, my intention was to document the technology and data formats, based on my reverse-engineering effort. Hmm … I’ll find the name other today. It should be in the manual, in the global configurations section. There is a configuration file with various assembly symbols, and lots of comments describing what they do. I think it is called “global-config.asm,” or something like that. The constant name is called TRK_ENABLED_6_CHN. Sounds good! Is that IntyBASIC music, or IMT? By the way, if you are using IntyBASIC, there is a tool I made to convert song data from IntyBASIC notation to IMT data format. dZ.
  3. No worries. The new upcoming one (2.0) or the existing one (1.5 rev4)? You are welcome. Although I will say that, in retrospect, it is much more technical than it needed to be. Back when I wrote it, I was not very familiar with the way traditional trackers worked and I wasn’t able to describe things in those common terms. Well, you need to provide either 3 or 6, depending on the maximum number of channels, which is configured using a constant in the global configuration file. That is just the way the playback routine works. In the new version, I will probably make the number of enabled channels a song header field, so that it can read an arbitrary number of channels per pattern throughout the song. And just to be clear, if you are not using any of the channels, you do not need to create sub-patterns for them, just point them to an empty pattern that consists of null events. dZ.
  4. Well ... there is kind of one reason: they are not needed in a game with minimal input demands. Personally, I would focus on getting the game-play mechanics, difficulty balance, sound effects, and visuals right before adding extra controller handling. But that's me. -dZ.
  5. Oh, I also forgot to mention, in Pac-Man, the energizer pills blink at 3 Hz, but are on for longer than off. Here is what I have in my notes in my old code: ; --------------------------------------------------------- ; The Energizer pills blink at 3 Hz, but they are "on" for ; a slightly longer period than "off". To get this effect, ; we toggle them on and off every 20 ticks, with the "off" ; timer out-of-phase by 12 cycles ; ; The result is that out of every 20 cycle period, the pills ; are on for 12 cycles and off by 8. ; ; Start ; | ; v ; ,___________________, ,______________// ; ON: | | | ; | |___________________| ; ; 0 12 20 32 40 52 ; |-----------|-------|-----------|-------|-----------|--\\ ; ; ,___________________, ,__// ; OFF: | | | ; ____________| |___________________| ; ; ---------------------------------------------------------
  6. Players who prefer pressing little tiny side-buttons to that big large round disc? Who are these people? 😄 I personally think that using the disc for movement is perfectly fine. -dZ.
  7. It sounds good! Here is some feedback on this version: The title music should be louder, at least 14, but perhaps 15. The chomp sound is now louder than everything else. I think everything is too quite. Maybe you want to crank up the "waka-waka" sound from 10 to 12 and make the crunch 12 or 13? I think you need to play with the balance of sounds a little bit. In the original, it is not just that Pac-Man pauses when he eats a ghost, it is the entire game -- the flying eyes of the dead ghost, the Pac-Man animation, the blinking of the power-pellets, etc. Everything stops while the crunch sound plays out and and then continues as normal. Looking good so far! -dZ.
  8. Yes, the note macro. In the last version I published (1.5 rev4), I included a new type of macro called NPK (Note Packing) which allowed you to define each row individually (without having to compute the length of each), but it still followed the old NOTE() notation. The new one looks like this: ; 3xx: Portamento To Note @@3xx: PATTERN.Begin(32) PATTERN.Row "C-4 -2 F ---" ; 00 - 1 PATTERN.Row "E-4 -2 F 304" ; 01 PATTERN.Row "--- -- - 300" ; 02 PATTERN.Row "--- -- - 300" ; 03 PATTERN.Row "--- -- - 300" ; 04 - 2 PATTERN.Row "--- -- - 300" ; 05 PATTERN.Row "--- -- - 300" ; 06 PATTERN.Row "--- -- - 300" ; 07 PATTERN.Row "--- -- - ---" ; 08 - 3 PATTERN.Row "--- -- - ---" ; 09 PATTERN.Row "--- -- - ---" ; 10 PATTERN.Row "--- -- - ---" ; 11 PATTERN.Row "--- -- - ---" ; 12 - 4 PATTERN.Row "--- -- - ---" ; 13 PATTERN.Row "--- -- - ---" ; 14 PATTERN.Row "--- -- - ---" ; 15 PATTERN.Row "E-4 -2 F ---" ; 16 - 1 PATTERN.Row "C-4 -2 F 304" ; 17 PATTERN.Row "--- -- - 300" ; 18 PATTERN.Row "--- -- - 300" ; 19 PATTERN.Row "--- -- - 300" ; 20 - 2 PATTERN.Row "--- -- - 300" ; 21 PATTERN.Row "--- -- - 300" ; 22 PATTERN.Row "--- -- - 300" ; 23 PATTERN.Row "--- -- - ---" ; 24 - 3 PATTERN.Row "--- -- - ---" ; 25 PATTERN.Row "--- -- - ---" ; 26 PATTERN.Row "--- -- - ---" ; 27 PATTERN.Row "--- -- - ---" ; 28 - 4 PATTERN.Row "--- -- - ---" ; 29 PATTERN.Row "--- -- - ---" ; 30 PATTERN.Row "--- -- - ---" ; 31 PATTERN.End The format is: Format: NsO dI V Epp Example: E-4 -2 F 304 N: Note (A..G) s: Sustained (# or -) d: Drum indicator (d or -) I: Instrument number (1..127) V: Volume (0..15) E: Effect command (0..9, A..X) p: Effect parameter Any argument can be left unchanged with "-" in its place, so you only need to include changes, just like in a regular tracker. (No more NUL or DRM event types!) The instrument definitions remain the same, although I may extend the data format a little bit later on to support pitch detuning and envelope sustain levels, etc. The DRUM() macro remains the same, so far, with the only difference that you do not have a limited sample size. That is to say, you can define each drum to whatever length you want, just end the last line with a zero, or use a handy "DRUM_END" macro. It looks like this: @@808_kick: DRUM($88D, $1A, 1, 1, $F) ; ~51 Hz DRUM($88D, $00, 1, 0, $F) ; | Basic TR-808 Kick, detuned by ~3 Hz DRUM($8AD, $00, 1, 0, $F) ; | DRUM($8AD, $00, 1, 0, $E) ; | DRUM($8BD, $00, 1, 0, $D) ; | DRUM($8BD, $00, 1, 0, $C) ; | DRUM($8CD, $00, 1, 0, $A) ; | DRUM($8CD, $00, 1, 0, $9) ; | DRUM($8DD, $00, 1, 0, $8) ; | DRUM($8DD, $00, 1, 0, $7) ; | DRUM($8ED, $00, 1, 0, $6) ; | DRUM($8ED, $00, 1, 0, $5) ; | DRUM($8F0, $00, 1, 0, $4) ; | DRUM($8FC, $00, 1, 0, $3) ; v DRUM($8FC, $00, 1, 0, $2) ; ~48 Hz DRUM_END I may change the format in the future to make it easier and more flexible, but that's like far outside my current concern. Sure thing. Let me get a few things tightened up and I'll send you a PM with the new code and some information on how to use it. Just be aware that it takes more memory to run this new version -- all those XM effects do not come for free (I tried!). -dZ.
  9. Heads up: I'm currently working on the Intellivision Music Tracker 2.0 with support for (most) XM effects, and a new data format inspired by XM's. The pattern data is still entered using macros, but they now follow the way XM trackers do: note, instrument, volume, effect (C-4 -1 F ---"), one event per row, leaving blank anything in a row that does not change ("--- -- - ---"). I had hoped to have something ready by this month, but it may be sometime in summer. Let me know if you would like to play around with it. dZ.
  10. Getting better! I like it. It is a little low. Is it not at max volume? It should be at max volume. Also, in the original, the game freezes while the "crunch" sound effect plays when Pac-Man eats the ghost. -dZ.
  11. It sounds good. Not great. It is a little muffled and hard to discern from the rest of the concurrent sounds. Have you given it the maximum volume? Also, it seems like it should end up at a higher pitch. Do not misunderstand me, I like it and it is a good an adequate sound effect. If you were to give up and keep it, it wouldn't be a bad thing. However ... you are so close ... I am sorry if I am not able to help more with this. I haven't synthesized sound in decades (even Joe had to code the sound effect of my game), so I am sort of stupid at this. I'd like to think I have a good ear to tell when it is good, but I wouldn't know how to get there. If it were me, I would create a quick-and-dirty program just to experiment with various parameters to see quickly how they act, but it would still be by trial and error. -dZ.
  12. Much better, and getting closer. I think the sound needs to progress to a much higher note. To me, the "crunch" sound is a very fast ramp of tones going up and down, whose base frequency goes up progressively. If I were to graph it, it would look something like this: In other words, there is a base tone that starts low, it is modulated up and down to give it a sharp and very fast "vibrato" effect (almost like one of those 8-bit arpeggios); and the base tone increases its pitch over time. Think of the "waka-waka" effect, but if it were shorter, then repeated for a little bit as the base frequency goes up. Hopefully this helps. -dZ.
  13. 3 frames seems to have done the trick. I think it feels right ... what do you think? About the crunch sound? I'm debating which of the two I like less ... LOL! It still sounds a bit noisy. I do not think there should be noise in it, just tones ramping up slowly, then faster. I think alternating between high and low volume on every frame would give it the "crunch" feel. I don't know. It has been a while since I've played with sound effects myself. Looks good! Here is my latest score.
  14. I'm looking forward to it. Is it out yet? -dZ.
  15. Are you sure you are skipping 2 frames? I barely notice it. It almost makes me think that the previous 4 looked better. Almost. Maybe 3 frames would work? Anyway, here is my new high score:
×
×
  • Create New...