Jump to content

Xuel's Photo


Member Since 21 Aug 2008
ONLINE Last Active Today, 7:44 PM

#3969188 RMT source code?

Posted by Xuel on Thu Feb 22, 2018 1:42 AM

Since the source code is not available, is there at least any documentation about the RMT format?


RMT format is described here on atariki.krap.pl. No idea how accurate it is.

#3960100 Analmux passed away

Posted by Xuel on Sun Feb 11, 2018 10:07 PM

Sad to hear. I saw some of his more recent posts mention a possible illness. I think he posted a lot of his source code at that time to make sure that it was disseminated. He was a great Atari contributor. RIP.

#3933947 SAP music question

Posted by Xuel on Fri Jan 12, 2018 5:52 PM

Got rid of the code for the first song. Now the SAP is only 734 bytes:


Attached File  cm2min.zip   4.14KB   19 downloads

#3931211 Help! add music format sap (mads)

Posted by Xuel on Tue Jan 9, 2018 12:39 PM

It doesn't look like the RMT Windows app supports this. Why do you want to relocate the SAP?
If you really need to do this, you can make your own SAP from a stripped RMT file. Instructions and example attached:
Attached File  rmt-to-sap.zip   36.13KB   18 downloads
Basic steps:
1) Launch RMT
1a) Save stripped RMT file, e.g. sunset.rmt

1b) As your saving the stripped RMT file, copy the feature code into rmt_feat.a65

1c) Save SAP, e.g. sunset.sap
2) Create output.header by extracting the header from 1c)
3) Copy rmtplayr.a65 and comment out "PLAYER equ $5000" line
4) Create output.asm
   This code places the stripped RMT, the player code and a short
   init routine in memory at the desired locations.
5) Build output.obx, e.g. "make output.obx"
6) Look for "INIT" and "RMT_PLAY" address in output.lab
7) Modify output.header to match addresses from 6)
8) Build output.sap

#3927324 Best practice on a programming environment for Atari 8-bit?

Posted by Xuel on Thu Jan 4, 2018 1:09 PM

My main environment is Windows 10 + Cygwin + vim + make + xasm + Perl + Altirra.

Occasionally I've used TMC2 for music and sound effects (X-8), Tiled for map editing (X-8), graph2font for screen editing (X-8, Ransack, Bomber) and gcc for custom C++ utilities (X-8). Other useful tools include franny for ATR manipulation, mads for assembling graph2font-generated sources, exomizer for compression, and many others I'm forgetting. For my various hacks of existing software (e.g. NTSC-fixing, bug fixing, cracking, enhancements) I use my disassembler dis. For BASIC competitions I use dmsc's basicParser.
Of course there is a wealth of great documentation and code to draw inspiration from on the web. It goes without saying that Google is one of the most essential development tools. And sharing ideas on AtariAge is a fundamental source of knowledge and inspiration.

#3924283 Altirra 3.00 released

Posted by Xuel on Sun Dec 31, 2017 4:47 PM

On a related note, would it be possible to normalize the linear and non-linear levels so that typical songs have the same dynamic range in either mode? It seems like non-linear mode makes things much louder overall.

#3922714 144 x 100 x 256 Color mode

Posted by Xuel on Fri Dec 29, 2017 6:10 PM

Oh, setting the luma of the PMG screen to 8 instead of 0 brightens it up without any need to adjust gamma:




Attached File  pmgmask-grayscale-luma8-screen.zip   395.13KB   50 downloads

#3922234 144 x 100 x 256 Color mode

Posted by Xuel on Fri Dec 29, 2017 6:20 AM

Yeah, looks like the chroma lines in frame #1 and frame #2 were swapped. Corrected at 54% saturation:




Attached File  pmgmask.zip   258.13KB   45 downloads

#3921681 Could be the oldest ARABIC OS "NAJM"

Posted by Xuel on Thu Dec 28, 2017 10:36 AM

This is great!  You should press the Spacebar next for the program to start.  Then control the program with the arrow keys and the spacebar to select between several programs.


I am using Altirra via Wine on Mac OS.  After rerunning Tools | First Time Setup, it worked!


Here are a lot of screenshots!


I found that the .atr works in Altirra when you disable System -> Acceleration -> D: Patch (DIsk SIO).


I suspect that when you run First Time Setup it does this which is why it started working for you after you did that.

#3915798 Stretch Missile across the full width of screen

Posted by Xuel on Tue Dec 19, 2017 1:00 PM

No gfx because no dma steal ;)


There is some DMA used to fill in the center of the largest faces but it's minimal because it's ANTIC mode 8 with the pixels crunched down from 8 scan-lines per pixel to 1 scan-line per pixel via VSCROL. Here's the DMA pattern in Altirra:




Here's one of the kernels where you can see VSCROL getting updated every scan-line and DLISTL getting updated every other scan-line:




Edit: Correction on how often DLISTL gets updated.

#3898865 Twilight World- NTSC?

Posted by Xuel on Mon Nov 27, 2017 12:26 AM

Looks like with my fix, the wizards on level three still glitch and the dragon also doesn't draw in time. I'm afraid there just isn't enough off-screen compute time on NTSC to update the screen cleanly with the current rendering framework of the game. Possible solutions would be to double-buffer the screen or reorganize the code to put all of the screen updates together so they're not so spread out.

#3898842 Twilight World- NTSC?

Posted by Xuel on Sun Nov 26, 2017 11:21 PM

Every other frame normally starts after the VBLANK at around scanline 285 on PAL or scanline 32 on NTSC. The late frame start on NTSC delays the animation updates so they occur after the beam has already passed. That causes glitches.


I tried moving the frame start so that it occurs around scanline 147 by adding a DLI and moving the tick update from VBLANK to this new DLI. That seemed to fix the glitches.


Attached File  twilight-world-ntsc-fix.zip   55.7KB   41 downloads

#3893814 Joe Blade NTSC version?

Posted by Xuel on Sun Nov 19, 2017 4:21 PM

The speed of the enemies is faster in the first part of this version than in the original game (and Xuel's NTSC version). I'm not sure how the rest of the game compares, as I didn't play through much of this version yet.


Yeah I noticed that too. The reason is that Rambo Blade replaces the LDA VCOUNT / BNE with LDA VCOUNT / BEQ which effectively gets rid of the frame syncing altogether. This means if you run on a 65816 at a higher frequency (e.g. 21MHz), then the enemies are super fast.


Other than that difference, it's interesting that Rambo Blade uses a similar NTSC-fixing strategy to the one I employed with Joe Blade II, i.e. just swap the immediate and deferred vertical blank routines instead of moving both into deferred as I did with Joe Blade.

#3892486 Joe Blade NTSC version?

Posted by Xuel on Fri Nov 17, 2017 3:17 PM

Does the countdown timer need slowing down?


Good idea. I see another case at B828 probably for the subgames. Not sure why the creators used $34. I agree $32 makes more sense. Maybe they adjusted it to make it slightly easier?


Here it is with $3C:


Attached File  joe-blade-ii-ntsc-fix.zip   132.74KB   28 downloads

#3892450 Joe Blade NTSC version?

Posted by Xuel on Fri Nov 17, 2017 2:02 PM

Joe Blade II:


Attached File  joe-blade-ii-ntsc-fix.xex   26.66KB   26 downloads



  • Swapped use of Timer 1 and Timer 2 since Timer 1 code was making immediate VBLANK too long but is fine as deferred VBLANK. Not sure if I introduced any order dependency issues with this swap but a quick play through looked OK.



Attached File  joe-blade-ii-ntsc-fix.zip   1.09MB   62 downloads