Jump to content

Rybags's Photo


Member Since 29 Sep 2005
ONLINE Last Active Today, 9:40 PM

#3009931 CENTRON 3D - Title Screen Shot

Posted by Rybags on Fri Jun 13, 2014 7:37 AM

I suspect 98% it's the case you need frame blending for flicker-free, ie LCD TV, Altirra emulator or video capture device.


Does their retro PC even have emulation of other systems?

#3003492 Trying to convert a .wav to a .cas

Posted by Rybags on Tue Jun 3, 2014 7:29 AM

In my experience, usually have both around 7 (normal audio type stuff, not data).


Too low, you get what you had plus the precision will be lower if you boost the amplitude later.

Too high and you get clipping and distortion.

#3003360 Question about irregular cycles in Atari Basic

Posted by Rybags on Mon Jun 2, 2014 9:49 PM

You need the delay since you're disabling the VBlank, it needs to execute once to store the DMA shadow.


Weird that you'd get inconsistencies with that example - of course the duty cycle of the wave won't be 50% - the two POKEs will execute fairly quickly but the GOTO suffers from Basic needing to scan from the start of the program to find the target line - although every chance it might be quicker as the POKEs themselves have to convert 2 numbers from BCD to binary.


That's the weakness of Basic right there - you can't depend on it for much better than 1/50th or so of a second re timing and even then the control isn't very granular or reliable.


Using assembler would cure almost all of the problems - one problem I found though is that the rise time from 0 -> 1 of PORT bits is inconsistent and can take a few cycles, the fall time from 1 -> 0 is almost instant.

But that was for triggering scope monitoring of the video signal which requires that accuracy to give you a consistent trace.

#3002737 Question about irregular cycles in Atari Basic

Posted by Rybags on Sun Jun 1, 2014 10:10 PM

Disabling VBlank or at least Stage 2 might help a bit too.


POKE 54286,0


POKE 66,1


But VBlank is just a blip, the screen DMA would be the largest spoiling factor for timing.  Onscreen there's around 40% slowdown, offscreen about 8% slowdown.


Another problem with Basic timing is that Floating-Point operations can be inconsistent in timing.


The best method overall would probably be to use Pokey Timers and an assembly routine.  It's the best method for doing waveforms/speech, and allows you to have the screen active and program running normally in the foreground.  You still get some jitter but it's only noticable if you're dealing with waveforms over about 4 KHz.

#3000456 DLIs... Again

Posted by Rybags on Thu May 29, 2014 12:03 PM

Graphics mode just puts constraints on how often a DLI can occur.  In some cases it's not desirable for a DLI every line anyway because the overhead is such that you're not left with much time left to do stuff.


In Gr. 1 it's easy enough - just use a store to WSYNC to skip ahead to the end of the visible display.  So for striped text you'd just setup a table with the colour values then read them in a loop.



dli  pha
  ldy #7
docolour  lda ctable,y
  sta wsync 
  sta colpf1
  bpl docolour
ctable .byte $a4,$a6,$a8,$aa,$aa,$a8,$a6,$a4


Note in this case the colours should be stored in reverse order that they appear.

This should work OK - you have to be careful with the amount of stuff that goes on before the first WSYNC otherwise you miss a line.

#3000343 CENTRON 3D - Title Screen Shot

Posted by Rybags on Thu May 29, 2014 8:19 AM

This works on LCD thanks to the way they handle interlaced analog signals.  The frame consists of both fields at once which is why there's no flicker.


It's probably more a trick of the eye than anything that you percieve the blended fields as colours of varying luminence.


I think it's probably worthwhile with experimentation - it might be the case that brighter colours would look better if the colour component was at a brighter value.


e.g. have the colour field as black + 3 sets of colours at luma 2 and luma 8, then a 4th colour at luma 2 (9 palette entries).

Pair the darker colours with luma values 0 thru 6, use the brighter colours paired with lumas 8 thru 14.

#3000292 CENTRON 3D - Title Screen Shot

Posted by Rybags on Thu May 29, 2014 6:46 AM

I've done a quick/dirty Basic program with VBI that can be used to show the effect.


Attached File  FBTEST1.BAS   866bytes   24 downloads


LCD Blending.JPG   Altirra Blending.JPG


Left is a photo of my 32 inch LCD TV from 130XE Composite video, right is Altirra screenshot with frame blending enabled.


The LCD isn't quite as I expected - I thought the saturation wouldn't have suffered so much although I've got the colour control on the TV set fairly low.  Frame blending is definately going on here as there is no flicker at all.  The same thing on a CRT looks an absolute mess.


Also, the colour bars themselves would probably look better if done solid or at least with black inbetween.  But the program is there, so can be played around with.

The DATA lines 100,110 hold the palettes for each frame - line 115 has the colour data with luma 2, change which of 110 or 115 is a REM to select alternate colour set.



It does illustrate though that this technique can be done cheaply in CPU terms - there's only a VBI going on, no DLIs at all, a few dozen cycles burnt per frame.

If the 80 x 48 mode is desired, then it could be done with memory savings and not much extra cost in CPU terms.

#2998817 CENTRON 3D - Title Screen Shot

Posted by Rybags on Tue May 27, 2014 7:13 AM

Looks like GTIA Paletted (10) - the half-pixel shift is there.  Check by hovering the mouse at the right of the text screen just before it transitions to a picture.

#2997540 CENTRON 3D - Title Screen Shot

Posted by Rybags on Sun May 25, 2014 6:56 AM

Doesn't matter... we work these things out 10 minutes after the release anyway.

#2997471 CENTRON 3D - Title Screen Shot

Posted by Rybags on Sun May 25, 2014 1:40 AM

I didn't even think it was an astronaut - looks more like the business end of a .45 Magnum.

#2996868 CENTRON 3D - Title Screen Shot

Posted by Rybags on Fri May 23, 2014 10:11 PM

In my experience it's just easier to do graphics in whatever PC-based package you want to use, taking into consideration pixel aspect ratio and palette limitations.  Then just save as raw or BMP and do a quick/dirty Basic program that imports the data and writes to a file on the Atari.

#2995299 Altirra 2.40 Final out..

Posted by Rybags on Wed May 21, 2014 1:17 PM

Someone's worked out how to copy the inernal Eprom from them:



#2994288 New TV show - Halt and Catch Fire

Posted by Rybags on Tue May 20, 2014 6:04 AM



Set in the early 1980s, series dramatizes the personal computing boom through the eyes of a visionary, an engineer and a prodigy whose innovations directly confront the corporate behemoths of the time. Their personal and professional partnership will be challenged by greed and ego while charting the changing culture in Texas' Silicon Prairie.


Only just noticed this.  Grabbing a torrent now.

No idea if it centres on real or ficticious characters, or any of the pioneering companies we all know.

Just hoping it's not all about Steve Jobs.

Docs and dramas of such events that just centre on IBM, Apple & HP tend to piss me off.

See how this one goes.

#2994025 Atari 800xe has died

Posted by Rybags on Mon May 19, 2014 5:35 PM

MT Ram is the bad stuff.


But in this case I would guess probably something among those addons has come loose during shipping.

I'd be checking the OS and memory mods first up.

#2991823 The Atari joystick Pinout Common Ground.

Posted by Rybags on Fri May 16, 2014 12:58 PM

Directionals are held at "1" value by pullup resistors, grounding each switch returns it to a "0" value.  Same applies to joystick button.


+5 V should never be connected directly to GND and not normally used by joysticks, although used by some autofire circuits.


Some joysticks actually operate by using the +5V (some Sega) and shouldn't really be used with Atari or Commodore gear.


+5 V used by paddle rotary - the Pot reducing that voltage which is returned on the paddle inputs to the computer.

Paddle value determined by how long it takes to charge a capacitor to a threshold level.


Paddle buttons equate to joystick left/right values.