-
Content Count
2,271 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by ivop
-
That looks very nice! Especially when the broken walls enter the picture. That guy looks like he rushing for the toilet to do a number two
-
That's not my problem. But it is easy on the A8. Display List something like: empty space High mountains (DLI slow scroll) empty space Low mountains (DLI less slow scroll) empty space Rocks (DLI faster scroll) empty space Bushes (DLI fastest scroll) last empty space Game stats (no scroll) By modifying the DL on-the-fly, you can vary the empty spaces at will and simulate height. For example, you start with dta 0,0 and work your way up to dta 112,112 to increase the space. Last empty space has to constantly fill up the last missing lines so the stats stay at a constant position.
-
Now that's proper parallax scrolling where layers actually overlap!! That "stunning" horizontal and vertical parallax on the C64 does none of that and is extremely easy on the Atari 8-bit with some display list juggling you can stretch vertically to simulate the plane going in the air, and back again. Horizontally is just HSCROL at different speeds. No overlap of mountains or terrain features at any speed.
-
During development of the song, you don't need to constantly LZSS compress the streams. Just push entries to a round-robin buffer that's played by a simple 6502 player that just dumps the frames to Pokey. I did But that's a no-go because it is way too much intertwined with the rest of the emulator. Then I mentioned reimplementing with Altirra as guide. That's a lot of work. After that, I also mentioned another method that might be more promising, namely a direct connection with either atari800 or Altirra. That way, you will automatically get better Pokey emulation if the emulator improves. Speed is a non-issue for so little data. And SHM, Domain Sockets or FIFO's are plenty fast for this.
-
Ah, missed that one. That's what you get when you optimize your code directly in the browser without testing
-
That's a tracker for the NES. Here you hear the stock sound chip plus an external Konami VCR6 soundchip. Nothing Atari at all.
-
True, but perhaps he can shuffle some instructions around. Or use the 3-cycle dummy + 2 new cycles = 5 cycles for something else. Another optimization is loading x with #$20 outside the loop. Remove lda #$20 from second byte part, replace sta IRQEN with stx IRQEN. Saves another 2 cycles. And 2 bytes. IIUIC, you need to complete your work in 33*2 - 9 (refresh) cycles = 57 cycles. So 56 was good enough already, but you can go lower if you want or need it And 7 free cycles could be used for something else. Or 8 cycles if my 57 cycles calculation is correct.
-
Do you run this on page zero? If so, for example prevByte could be added like this ... prevByte = *+1 adc #$00 ... sta prevByte ... Saves one cycle. Edit: Same can be done with chksum. ... chksum = *+1 adc #$00 sta chksum ... Saves another cycle Before entering the loop, both have to be set to zero, but that had to be done anyway.
-
My POKEY experiments using nonstandard settings
ivop replied to Synthpopalooza's topic in Atari 5200 / 8-bit Programming
There's no metadata, but looking at the waveform in Audacity, this is a recording with Altirra. Running the binary sounds the same to me. It also sounds quite good on atari800, and hence on the latest Atari800MacX, if I recall its name correctly -
Yeah, dmsc's and Rensoup's work on this should not be forgotten If dmsc hadn't open sourced his work, we wouldn't have this right now! Another example where opening up your project leads to other projects @rensoup I see an MIT license in your ZIP file. Is your source code available somewhere? Edit: BTW I know that the MIT license doesn't require that, but I was just wondering if it is available. Or if you plan on releasing it in the future.
-
S03E05 "Ben is in Cooper's bad books and keeps silent when his mentor sides with a child-beating mother and arrests a man from driving under influence from prescription painkillers, while Cooper is dependent on illegal pills. "
-
Sure! We'll get there in the future Just listen to Synthpopalooza's exo-area5. Some parts sound almost like a SNES. Somehow I'm "working" on an 800XL keyboard replacement for over a year now So many unfinished projects. But I did Pokey Explorer last year, so not all was lost I like it that you use it, too. Thanks for the compliment the other day. That really means a lot to me.
-
Oh, yeah, I forget that everytime. I thought the source was lost for ever after Raster's unfortunate passing away. IIRC the family could not find it. But rumours are that apparently there's somebody else that has the source code. Why he keeps it to him- or herself is a complete mistery to me. "We" should just build a plain pattern, song and instrument editor that does LZSS conversion on the fly for replay on Altirra or atari800. There's my old idea again, both emulators should have an easy API to the outside world when they are running. A local socket, or something, with commands to clear memory, reset machine, load binary, fill memory, set PC, run, stop, et cetera. That way, it can act as a backend to a tracker/editor. Yeah, we, should, and just Another option might be writing an RMT patcher which knows where the assembled RMT player and all the tables reside in the binary. Load Rmt.exe, replace player and or tables, export new Rmt.exe Oh, I believe the tracker itself has all the options enabled in the 6502 player. That might also a cause for different replay sound by an exported and assembled, because the code paths through the player are different from within the tracker.
-
Sorry, no. I'm not that familiar with SpartaDOS. But I read that those under-the-RAM Vxxx vectors were replaced by so called symbols (Spartados speak). Old vectors might or might not be there, just for 3.x compatability. I have no idea how to call a specific "symbol", but I suppose @drac030 or @flashjazzcat can tell you Calling symbol I_GETTD should do the same as calling VGETTD, if I understand correctly.
-
If I'm not mistaken, you cannot rely on RAM vectors underneath the OS ROM. You need to use I_GETTD. You don't even need to switch out the OS for that IIRC.
-
IIRC Atmas II does not work under SDX. It neither works correctly with MyDos. Monitor I (DIR) does not work.
-
Sounds like some part of the FujiNet acts like a receiver (not the WiFi transceiver?) that leaks to the SIO audio-in pin. I have a very old Dual record player with built-in amplifier to which you could also connect a radio, or cassette player. Even if nothing was connected, and nothing was playing, if you cranked up the volume way up to eleven, you could hear AM radio stations
-
That's just for the video. Neither the VIC-20, nor the C16 has a SID chip. The VIC-20 had its VIC chip, and the C16 had the TED sound chip.
-
Here's something I'd wanted to do for some time after I did pokey-explorer. This is a spreadsheat with all 16-bit and 8-bit tunings for distortion 10, both PAL and NTSC. You can fiddle with the clocks (these are 800XL clocks), but you can also change the frequence of A4. If you change it to something else, all values automagically change. Everything from Handel's tuning fork at 422.5Hz, Beethoven's fork at 455.4Hz, and everything in between should work All tables are tunes towards 12-TET (12 Tone Equal Temperament). It could be nice to replace the 12-TET column with a different tuning. For example, if you know your song is in D Major, you could put a D Major just intonated table in place, and let the spreadsheet do its magic, and return to pre-Bach just intonation. Like a breath of fresh air. On a G string Atari Tuned Notes A4=x.ods
-
Yeah, it was iconic BITD. Perhaps I should try an atarisid6 conversion tonight. Wonder why I never did that yet 😕 You gotta love the VIC-20, and the C16 in there Plus two Gameboys, and a bunch of analog effects. I doubt they really play it live though
-
Yeah, it's not just the sub-par emulation of pokey.dll. Could also be the 6502 emulation it uses. It emulates the true 6502 rmt player routine. Perhaps it's the glue code around both DLLs, and that's where the timing is off. Or it's the downsampling from 1.79MHz to 44.1kHz. 👍
-
opt h- .macro splitwords ; :%%0 dta # ; # works, counts from 0 to number of parameters-1 :%%0 dta l(:#+1) ; # in an expression does not work :%%0 dta h(:.R+1) ; neither does .R .endm splitwords $dead, $beef, $0123, $4567, $89ab, $cdef Edit: this happens to be my 2048th post
-
I had totally forgotten about l() and h(). That's a 50% solution IMHO Would you consider implementing something like this: table .startsplitword .splitword $0123, $4567, $89ab, $cdef .splitword $8976, $afe0, $dead, $beef ; etc... .endsplitword tableend tablelo = table tablehi = table + (tableend - table) / 2 Syntax is debatable of course
