emkay Posted November 24, 2015 Share Posted November 24, 2015 Those Programs use dedicated routines to work together, allowing to use the 6502 without "overloading" CPU cycles. The RMT Runtime isn't the smallest... Where's the problem of reducing the needed Cycles for the main program? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 24, 2015 Author Share Posted November 24, 2015 same question why should I reduce my 80x74 voxel routine down to 32x32... Quote Link to comment Share on other sites More sharing options...
José Pereira Posted November 24, 2015 Share Posted November 24, 2015 Is there anywhere the .xex or .atr of the Zine? On the Jaskier website are only .asm . Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 24, 2015 Author Share Posted November 24, 2015 (edited) http://atarionline.pl/v01/index.php?ct=demos&sub=ziny&tg=Energy#Energy ah... and forgot the alltime classic... first trackmo style demo on A8: You can ask Miker and Seban how a pain it was to link all the stuff nativly on A8 btw. at 3:00h Plasma it is loading fex. the next part. or look at 4:55... how seemless it goes into loading the next part... Edited November 24, 2015 by Heaven/TQA 1 Quote Link to comment Share on other sites More sharing options...
José Pereira Posted November 24, 2015 Share Posted November 24, 2015 Oops, thanks, I was searching Energy Zine there and is only named Energy. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 24, 2015 Author Share Posted November 24, 2015 @Miker... Jesus... Overmind is 20 years old?.... 1 Quote Link to comment Share on other sites More sharing options...
miker Posted November 24, 2015 Share Posted November 24, 2015 Well, nothing gets younger, even this one. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 24, 2015 Author Share Posted November 24, 2015 its still an alltime classic and your music there is outstanding Quote Link to comment Share on other sites More sharing options...
miker Posted November 24, 2015 Share Posted November 24, 2015 Thanks, assuming that the player used there was broken (or rather - overoptimized). Quote Link to comment Share on other sites More sharing options...
MaPa Posted November 24, 2015 Share Posted November 24, 2015 You can just check often in your FX routine if next frame already started and call RMT player. Modify RMT player routine to not call SetPokey at the start of rmt_play, and call the SetPokey in VBI. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 24, 2015 Author Share Posted November 24, 2015 Thanks mapa. Will try that as well as buffering data. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 25, 2015 Author Share Posted November 25, 2015 I'd recommend chaining the stage 2 VBI off of the end of the IRQ handler. Have all of the IRQ handlers jump to a common RTI instruction, and if stage 1 VBI sees that it has interrupted an IRQ handler (I flag set), patch the RTI instruction to JMP to the stage 2 VBI handler instead. This then allows RMT to run at a software interrupt level higher than the main loop but lower than hardware interrupts. How can I check the I flag??? as when entering the NMI I can not do a php pla and #4 beq ? as NMI already set the I flag, too? Quote Link to comment Share on other sites More sharing options...
MaPa Posted November 25, 2015 Share Posted November 25, 2015 Like the Atari OS does: C118: BA TSX C119: BD 04 01 LDA $0104,X C11C: 29 04 AND #$04 C11E: F0 03 BEQ $C123 2 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 26, 2015 Author Share Posted November 26, 2015 ok... I tried both variants: the OS version and this version php pla and #4 bne ;and beq etc the IRQ loader writes status codes do DSTATS (0,$80) and even tried skip the player... to be honest RMT is really heavy on CPU load... I even replaced all pokey writes into the player just to see if it works... and my impression is that with writing to pokey registers it gets more unrelyable in Altirra... just to give you an idea... I have reduced the fx to be running in mainloop in 1 frame so music player is running in main loop, too. VBL somehow does not work good enough yet... (yeah... 3d stars is reusing the Arsantica 3 intro code... so it has 16bit signed muls for each star... which will be optimised a lot...) Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 26, 2015 Author Share Posted November 26, 2015 same happened to MPT player which is little bit faster.... so... maybe there is still some bug in the BSIO routines... Quote Link to comment Share on other sites More sharing options...
Rybags Posted November 26, 2015 Share Posted November 26, 2015 (edited) Did you do a CLI? Alternatively, use some variation of what Avery suggested. A flag or code patch that alerts the IRQ routine to call RMT. Within the IRQ you'd need to clear the IRQ status in Pokey then do a CLI before calling RMT. The key to the entire thing is ensure there's never more than a couple of scanlines of continuous time where IRQs are being masked. Edited November 26, 2015 by Rybags Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 27, 2015 Author Share Posted November 27, 2015 well... actually reworked the FX to a 50 fps one... so player is main loop. https://www.youtube.com/watch?v=8xkYH4J6yH0 Quote Link to comment Share on other sites More sharing options...
MaPa Posted November 27, 2015 Share Posted November 27, 2015 (edited) As I already said... i would check if RMT should be called often enough in FX loop and call it when needed, so everything is in main code. Only setting 2 POKEY channel registers in VBI and set flag for RMT payer call need. For example your wfole FX is done in 16 loops and it runs over 3 frames.. so check for RMT need after every 2 loops... adding something like: lda loop_counter and #1 bne no_rmt lda rmt_flag beq no_rmt jsr rmt_is_needed normt .... continue with your code Edited November 27, 2015 by MaPa Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted December 22, 2015 Share Posted December 22, 2015 I wanted to see how this turned out... what's the result Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 22, 2015 Author Share Posted December 22, 2015 Works release date Revision 2016 2 Quote Link to comment Share on other sites More sharing options...
tebe Posted July 21, 2019 Share Posted July 21, 2019 Energy Zin #2, IRQ Loader http://madteam.atari8.info/index.php?energy=irql 3 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted July 21, 2019 Author Share Posted July 21, 2019 (edited) 3 hours ago, tebe said: Energy Zin #2, IRQ Loader http://madteam.atari8.info/index.php?energy=irql Issue #1 had one, too. With Digi drums playing while loading. ah me muppet it’s the loader of issue #1 Edited July 21, 2019 by Heaven/TQA Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.