Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by NRV

  1. Maybe someone will feel motivated to do something more constructive after watching these: (or to do more "research" like sack-cos ) Combat? http://www.youtube.com/watch?v=hoBOvYmY7HU Spelunker? http://www.youtube.com/watch?v=tKPiv4ElXaA Mr.Do? we need one of these: http://www.youtube.com/watch?v=GMdVKJG905k&NR=1 Regards. (hmmm.. anyone know what percentage of the installed base are the 130XE and the C128?)
  2. Yes.. the "strange" thing is that the Wolf RPG looks like a modern Wolfenstein version (real 3D) and the Doom RPG looks like the original Wolf Will try to find a video of that one..
  3. Thanks for the explanation. I will try to test on real hardware at some moment and let you know of any difference in the behaviors. Regards.
  4. Great work, I was waiting for this The only thing that I miss right now is the "change palette" options, and it seems to me that the frame rate is a little more unstable than with Atari800Win, something like a lower priority thing, but maybe is just me (I'm testing it on WinXP by the way). One question.. what would you say is the status of the IRQ timers emulation? complete or work in progress? (I am interested in the 1.79Mhz timer interruption and the STIMER behaviors). Thanks!
  5. Yep, with the high quality of many flash or simply web games these days.. is like sometimes some of them talk to you.. "port me.. port me please".. maybe I'm hearing things.. For example GTIA 9 (or G15 + some DLI's), hi speed horizontal scrolling, a wide screen.. and this one: http://adamatomic.com/canabalt/ Regards. (no C64 programmers, we saw it first!.. well, well you can have the doves in better resolution.. go ahead)
  6. To analmux.. one question In the "other" thread you said that "Maybe the most flexible way to do this is to use timer4 (the other timers: timer1 & timer 2 might be needed for more flexible pokey features for the music). Then clocking pokey at 15khz, channel 1&3 can be individually clocked. Then we'd have sawtooth wave if needed, or distortion 2 @ 1.79mhz to have high notes in tune.".. I prefer to use a timer in channel one, clocked at 1.79mhz, then you can have almost the same options, but with access to the 64khz clock (for voices 2, 3 and 4). With your option you can have 2 channels clocked at 1.79mhz, but I don't know what is better from a "music" standpoint.. what do you think? To PeteD.. yeah, you cannot use the timer channel for music because you need the AUDF register to set the timer value.. but if that frequency value is useful to your music composition maybe you can use it . You can change the volume and the distortion of the channel.. and you can play samples with that channel (because that uses only the volume part). One example, that I know works in real hardware and in the last Altirra emulator (1.3pre10, posted somewhere in this forum), from project-M: using the 15khz, timer 4.. // start disabling IRQs sei lda #0 sta IRQEN // I dont use the OS code, so I hijack the IRQ vector lda #<IRQ1_address sta IRQH_VECTOR lda #>IRQ1_address sta IRQH_VECTOR+1 // init irq timer 4 and general clock lda #0 // volume = 0 sta AUDC4 lda #1 // 0 ==> count one scan line (minimum resolution!), 1 ==> count two .. sta AUDF4 lda #1 // 15khz mode sta AUDCTL After that, you need some code to sync the start of the IRQ to a specific horizontal position (you need to do this only once in your game). In my case I wanted to sync to a point near the start of the line. There is jitter here! your entry point is not the same every time. You can only be sure that you are starting BEFORE a given position. This code isn't necessarily the optimal one and maybe is doing some unnecessary things.. Also this thing is syncing to an odd or even scan line (I don't remember which), because I'm doing one IRQ every 2 scan lines. If you want one IRQ every scan line, or every 3 or 4, or another value, you may need to change this code. // sync IRQs start (to an odd or even scan line) sta WSYNC sta WSYNC lda VCOUNT Sync_irq_15KHz sta WSYNC cmp VCOUNT beq Sync_irq_15KHz sta WSYNC sta WSYNC lda #0 sta SKCTL :10 nop // dummy cycles.. add more or less to start at a different x position in the line lda 0 lda #3 sta SKCTL lda #1 // just need to be different than 0 sta STIMER cli // enable IRQ's But we still need to enable IRQEN with the number of the timer that we are going to use (1, 2 or 4). I do that on a DLI at the start of the screen with just: lda #4 sta IRQEN and the last IRQ in the chain in that frame does: lda #0 sta IRQEN to disable the IRQ's.. The general IRQ code does something like this: IRQ1_address sta m_irqSaveA // reset the timer lda #0 sta IRQEN lda #4 sta IRQEN // IRQ code.. // exit lda m_irqSaveA rti Anyway I think that the way to go is the 1.79mhz timer (only in channel 1), specially if you need to sync to different horizontal positions, in different scan lines.. Hope that helps
  7. What emulator are you using? With Atari800Win is normally a drag and drop thing.. with Altirra you need to go to the menu I think. Of course all emulators need the normal Atari Rom files, so.. can you run other programs in your emulator? and if so, how do you do that normally? Regards.
  8. Thanks, is good to know. Here, a pack with all versions in one place.. for the Atari800Win emulator and for real hardware: PM1_all_versions.zip I added the NTSC versions for real hardware, with better colors. I still don't know if the "_179" versions work, probably not according to the numbers from Analmux. Regards.
  9. Well, is just a technical demo right now.. maybe some day it will be a game for the 8-bit Don't worry that much.. I suppose that you want to see this thing completed as much as me, but don't think that I am losing time just because I'm asking some questions. You are not going to see me talking about the problems that I will have with the next stage, just the final result in one or two months (I hope), that's the way I "work". Also, sometimes I like to advance in the details, sometimes in the main algorithms.. I can do both . This is my "road" and is supposed to be fun over all things.. My principal "enemies" right now are the "scaling in X" artifacts, but I think I can minimize them without compromising the frame rate (my main goal).. all other things are advancing well. The luck and encouragement are well received by the way Regards.
  10. Is good to know that, I normally sync the effects through trial and error Right now I cannot test this in PAL hardware, so maybe you are right and it doesn't work with this value. Yep, that's like the optimal solution, I had taught about it, but in reality is too much work. I don't have a "constant workload" in every frame that I can "interleave" with something like that right now.. maybe for another project. Regards.
  11. Hi, I have 2 new versions for PAL hardware: PM1_PAL_HW_15khz.zip PM1_PAL_HW_179mhz.zip I have implemented the IRQ's with the 1.79MHz clock and changed a little the method for the 15KHz clock (to something more reliable, I think). When the programs start you can see where the GTIA mode changes are made, but if you press any key all goes back to normal. For the 1.79MHz method I needed to use a value of 109+114 in AUDF1, for one IRQ every 2 scan lines, but if I wanted one IRQ in every scan line I needed to use a value of 109.. I don't know why is this (only tested under emulation anyways). Also I just clocked channel 1 to 1.79MHz, but didn't joined channel 1 and 2 (is this necessary?, I don't want to lose two sound channels to use the IRQ's). At least they work on the last Altirra beta emulator.. Could someone test them in real hardware? Thanks!
  12. I think I found the problem, try this version: PM1_real_HW_fix1.zip I was doing a: lda #1 sta STIMER every frame (in the DLI that starts the IRQ's).. now only in the init (Altirra detected the problem correctly). Also, seems that the song used an effect that changes the clock for a moment, near the end, so now I'm forcing the 64KHz clock in every frame (inside the RMT player's code), to avoid the screen corruption that it caused. Regards
  13. Great sound! Should be the test song for all emulators Regards.
  14. Thanx!, good.. correct sync at last.. But about the sound, do you think is a problem with the song and the clock or maybe some bug in my code? When I test it in Atari800Win it sounds the same as before. In Altirra it sounds different than in Atari800Win.. like with more bass.. Regards
  15. Thanks eru Do not worry, I am no underestimating the "beast" that is a ray caster (and I will try to surprise you with the next stage ) Could someone try this on real hardware, PAL or NTSC? PM1_real_HW.zip the last Altirra 1.3pre10 seems to like it.. (but in Atari800Win it starts one line too late) (I should be sleeping..) Regards!
  16. Added a small update in the original thread: http://www.atariage.com/forums/index.php?s...p;#entry1817944 Regards
  17. Update: project-M 1.1 - Added song from Miker. Being my first time integrating RMT I should say that it was pretty painless, the only thing that I had problems with, was the reset of the voice that I was using for the IRQ. I don't know if there is a "correct" way to do this (I tried with the SFX feat without success), but I commented the code that updated AUDF4, AUDC4 and AUDCTL in the RMT player and it worked. - Added special NTSC version with similar colors to the PAL version. Should be used with the Larry-NTSC palette that seems to be the more accurate from what I remember from my own works (it was posted in this forum, but I don't remember the topic). Also added the laoo palette and the NTSC one as .PAL formats, for those that want to use them in Gimp or some other programs. These are still only for the emulator, as I haven't had the time to sync the IRQ's in real hardware yet (hoping that the new Altirra emulator arrives soon ) Regards! (Many thanks to Miker for the song!) PM1_1.zip
  18. Well, just in case, here is a version with the label names changed: RC2.zip this should compile in all versions of mads
  19. Yep, that was what I used to think.. thanks Well, for using the 15 and 1.79 clocks I suppose there is no problem with that method.. you just sync at the start of your program and then forget about it.. the problem now is the 64khz clock and the NMI's (but it sounds like the idea of starting in an even or odd cycle should work?). So, if I want to count 1 scanline, with the 15khz clock I just use AUDFn with a 0 value, and if want to do the same with the 1.79mhz clock I use AUDFn with 114 (or 113?).. Regards
  20. One question.. is doing: lda #0 sta SKCTL .. wait loop .. lda #3 sta SKCTL the only way to change the IRQ start at different cycles in a scanline ?? independent of the clock (15, 64 or 1.79)? and STIMER doesn't have any role in that?? thanks..
  21. he.. then use and older version or change my labels that start with "endm" (in sys_macros.m65) with "end_m" Regards
  22. Try the last build of mads that appears in this thread: http://www.atariage.com/forums/index.php?s...=114443&hl= 1.9.0.b14 should fix it..
  23. Here.. added some last minute comments and formatting.. RC.zip The original was written in MAC/65 in real hardware, but I converted it to MADS some months ago. You need to compile the file "mrspv.m65", using the same directory structure. Also, from what I see (I don't remember all the details.. too many years ), the display list is mirrored, like in AR The City, so only the upper half of the screen is drawn.. but, the drawing method is unoptimized, so it should not be a problem if you want to do something more complex Good luck NRV
  24. strange idea? that sounds more like another project that demo takes like 2.7K for the code and some tables, and a little more than 5K for the precalc data for the raycaster (with intersections and final height info.. you have 8 steps between tiles, so there are 8 precalc tables of 650 bytes each), plus the two display buffers (for double buffering) that takes 4K each.. so you have most of the memory available. I think that every tile in the map uses 2 bytes for the definition of the top, left, right and bottom walls.. with 4 bits per wall you can select the color (GTIA 10) of the wall and if you can pass through or not.. also you can have the "Alternate Reality" thing, where you can see a wall from one side but not from the other (or pass only through one side.. hidden doors). If you want the code I can clean up it a little and post it, but remember that this renderer is only for plain color walls.. Regards
  • Create New...