Jump to content

R0ger

Members
  • Content Count

    753
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by R0ger

  1. Also check out the syntax with .macro " " .. it's in MADS manual from phareon. It allows you to use both direct and indirect modes, ie. adding #10 or 10 as an address, the same way adw and similar build-in macros do.
  2. Mads doesn't have types for variables. It doesn't even have variables. Just labels. You can tell the type for constant, that's simple. If the number is less than 256, it's a byte. If it's more than 255, but less than 65536, it's a word, and so on. But for variables, you're out of luck. As tebe mentions, Mads has similar built-in macros, and it will correctly expand these variants: adw var #40 adw var #4040 But if you want to add 8 bit zero page variable to 16 bit zero page variable, there is no way to do it.
  3. Things like this can be easily analyzed in Altirra. Use ctrl+F8 to switch layer mode, that will show you what is PMG, and that is which field. Next ctrl+F8 will show you color registers changes during the frame. And if you break into debugger using F8, you can then use Alt+click on screen, to see what is the current Antic mode, VRAM address and DLIST address for line. That can give you some idea.
  4. I don't understand what is the code supposed to do. Anyway, I use proc mostly simply like procedures, but sometimes as scopes for labels. I mean having local labels is the main reason. I like to name loop labels l1, l2, addresses for self-modifying code a1,a2 etc. and like this they don't have to be unique across the whole project. Also I call procedures by the name only, and sometimes I later change the proc to macro. Proc is useful for profiling, that's why I start with proc, even if it's called from just one place. The most common use where it's just a scope is in NMI handler. I used to make one proc named NMI, and in it there were labels VBI and DLI. But that way I have to enter NMI.VBI into debugger when I want to jump to VBI handler. So instead of that I now use proc for each NMI, VBI and DLI. The code itself is just the same, I'm not using JSR in this case, but it's simply more handy in debugger.
  5. We still hope for some fall weekend. But who knows how international travel will be. I guess this year parties will be smaller local variants, with going back to normal next year. Let's hope !
  6. Nice simple video explaining difference between Julia and Mandelbrot.
  7. And when you plan to release it ?
  8. So as feared (and expected), the party was postponed to yet unspecified date. The magazine will release though !
  9. What I wanted to say is unless we know exactly why the registers have to be saved, in what situation, it's hard to come up with "correct" method. On is fast, other is short, yet another allows re-entrancy, and it might even be best to simply not do it. It all depends.
  10. Why store the registers though ? I usually accept the fact the subroutine will destroy the registers (or use them for arguments and return values) and I handle the problem on calling side. Most of the time things in the registers are already stored somewhere, and caller knows where. No need to store them again. Interrupts are different matter of course. There I use sta, stx, sty, and usually I have separate sets of zero page variables for DLI, VBI or IRQ.
  11. Send screenshot .. most likely you have CPU set to break on BRK, NOP or illegal instruction.
  12. Well here clearly something like player is being drawn. Using bitmap graphics or PMG is way to do it. Certainly not lines, and certainly not OS lines.
  13. So here it is. Sadly I don't understand patch 8 well enough to tell it's what you wanted. I took all the tables and settings from patch 8, except for distortion 6, which uses your table. I didn't take any code modification from patch 8, they seem to do something very similar to what I'm doing, but not exactly. They should not be needed for anything but patch 8 distortion 6. It's the steady version, check it out, and if it's ok, I can easily make mod ones. rmt.synth-steady.8.zip
  14. So you want A untouched (from original), and 2 and C to use settings and tablets from patch 8, right ?
  15. Hm, this patch really messes with the routine itself, it wouldn't be possible to combine it with my changes. What exactly do you need from it ? You want to make 15kHz song ?
  16. Can you make some example ? You can see what values got to which register in RMT. Just play some note, make a screenshot, and tell me what you think is wrong. In the steady version the values should match perfectly.
  17. Send me the version and I can take a look. I'm using 16bit tables though, so you can't have any other 16 bit instrument.
  18. Ah, so no, it DOES work, just a small bug. Check this out. There are 2 version, one with no modulation at all, and the other with 1/5 of the value in second column. Important difference ! You still have to use RMT distortion 6, but you have to place the note into channel 1 or 3, not 2 or 4. It's tied to the fact that I write value to different audc and 0 to the other. Rmt-synth.zip
  19. Hm .. so it doesn't work as I hoped .. have to hack it a bit more ..
  20. It's still not clear to me what I'm supposed to do with the third number. Also wtf is sampling track ?
  21. Ah, I understand. I think I found it and seems doable. Has to be done on every pair of channels, so 4 times for stereo, but I think I know what to change.
  22. Send me the table and I can try it. I think second channel is set to 0. If it's not, ti might need further modification of the code, but should be doable. As for effect on 16bit modes, you're out of luck. RMT simply does not support them. It can't even do simple detune, though Filter does something like that. But it also forces the filter bits in AUDCTL and there is poor control over the detune amount.
×
×
  • Create New...