Jump to content

Xuel's Photo


Member Since 21 Aug 2008
OFFLINE Last Active Today, 4:42 AM

#4092401 Altirra 3.10 released

Posted by Xuel on Wed Aug 15, 2018 9:42 PM

Thanks for the new release.

One feature request: Could you please add a keyboard shortcut for muting sound?


P.S.: I know this is low priority, but I just wish you used the updated app icon that I had sent you over a year ago :-)


This already exists:

  1. Tools -> Keyboard Shortcuts
  2. Select Audio.ToggleMute from the Available commands list
  3. Click on the text input box above the "Key up" box
  4. Press the key that you want to bind (for example I use Page Down)
  5. Click on Add

#4083713 FujiConvert 0.1

Posted by Xuel on Wed Aug 1, 2018 2:28 PM

FujiConvert 0.2.4:

  • Fixed issues found by Microsoft Edge




it do not work in my browser :( I change settings as i need, and nothing happens after mp3 choose. than i click to reconvert and stil nothing happens. and in the version desription in the left down corner i have only version X.X. iam using Edge, win10 (and it do not work on Chrome and IE too:( )


It works for me in Chrome, Firefox and Edge on Windows 10. Are you using the github.io site or running a local copy? If running locally, Chrome doesn't allow web workers when using the file:// interface so you'll need to use an HTTP server or run Chrome with --disable-web-security. If it still doesn't work for you, can you open the developer console and see if it reported an error?

#4082665 FujiConvert 0.1

Posted by Xuel on Mon Jul 30, 2018 10:56 PM

Some quick fixes:


FujiConvert 0.2.3:

  • Fixed PCM4+4 initialization after pause/resume
  • Removed CSS-animated progress bars that slowed down the browser
  • Fixed 7800Hz on Firefox

#4081976 Space Invaders UFO Sound Fix?

Posted by Xuel on Sun Jul 29, 2018 9:50 PM

Thank you, and thank you for the explanation too.  I'll give this a shot tonight.


So why does it work correctly on the 400/800 though?  Because of the different OS?


Correct. The 400/800 OS initializes AUDCTL to 0.

#4081751 Space Invaders UFO Sound Fix?

Posted by Xuel on Sun Jul 29, 2018 3:12 PM



Attached File  inv-fix-audctl.rom   8KB   39 downloads


The problem is that the code doesn't initialize AUDCTL so it ends up being 00 after a cassette load and 28 after cart load. So I added code to initialize AUDCTL to 0.

#4081452 Using Pulse Density Modulation for 8-bit PCM

Posted by Xuel on Sat Jul 28, 2018 11:17 PM

Just a small request: Would you guys consider posting a video or audio file, even attach an MP3? I have an NTSC and I can't run the PAL stuff that I would so like to hear.




The PAL files should work on NTSC. They'll just sound slightly higher pitched than they should. Vice versa going from NTSC to PAL.

#4081446 FujiConvert 0.1

Posted by Xuel on Sat Jul 28, 2018 11:03 PM

FujiConvert 0.2.2:

  • Added sinc resampling (super slow)
  • Added SIC! cart support
  • Added preview wave file (always 8-bit regardless of method)

I'm using Ron Nicholson's Quick & Dirty Simple Slow ReSampling technique which is indeed brute-force and slow as advertised. Set resampling effort to "None" to disable.


Using "High" effort is enough to get a pretty clean chirp with a pretty clean cutoff. "Ultra" does a bit better. I'm using the sample from the Chirp Wikipedia page.


Attached File  Linchirp.ogg.zip   67.21KB   9 downloads

Attached File  Linchirp pcm4+4 mono 7800Hz sic pal high.zip   57.43KB   10 downloads

Attached File  Linchirp pcm4+4 mono 7800Hz sic pal ultra.zip   55.36KB   10 downloads


The resampling effort just determines the window size for the sinc convolution:

  • Low = 16
  • Medium = 128
  • High = 256
  • Ultra = 1024

The cutoff frequency is hard-coded at 0.45 * output sample rate.


I would love (easy) suggestions for how to speed this up.


I added the preview wave file download to verify that the resampling was working. Playing the result in the browser via WebAudio ("Play" and "Stop" buttons) doesn't give a true picture because WebAudio doesn't resample so you get artifacts. That's the whole reason that I added explicit resampling in the first place. See also this post.

#4081421 Using Pulse Density Modulation for 8-bit PCM

Posted by Xuel on Sat Jul 28, 2018 10:12 PM

Here is a video of M.I. by E. converted with Fuji Convert by me into a (alas, extremely noisy) PDM file, intentionally shortened, so the record companies cannot complain. Is the amount of noise normal for a PDM (PCM 4+4) file ?!? Or did I choose wrong settings in Fuji Convert ?
video container: AVI with MPEG4 / XVID

I suspect two things are happening for soft clear tones like this: 1) 8-bits is not enough dynamic range and 2) The imperfections of PDM are accentuated.

Even Covox has some noise. Compare these stereo conversions:

Attached File  imm-trim pcm4+4 stereo 31200Hz atarimax pal.zip   837.94KB   15 downloads
Attached File  imm-trim covox stereo 31200Hz atarimax pal.zip   661.91KB   13 downloads

#4071779 Altirra 3.00 released

Posted by Xuel on Mon Jul 16, 2018 9:26 AM

Is this right place for Altirra related questions ?
I need to log memory writes .. just PC, destination address, and value. I found how to log tons of thing, but not this.
Thanks !

You can use the bx command. For example, this will log all writes to ANTIC:
bx "write>=$D400 and write<=$D4FF" "r; g"

Example output during Self-Test:
(200:105, 17) A=20 X=2C Y=00 S=FA P=35 (   I C)  50E6: 8E 0A D4  L50E6   STX WSYNC    [$D40A]
(200:112, 79) A=00 X=7A Y=00 S=FA P=37 (   IZC)  50E6: 8E 0A D4  L50E6   STX WSYNC    [$D40A]
(200:128, 74) A=00 X=7A Y=00 S=FA P=37 (   IZC)  50E6: 8E 0A D4  L50E6   STX WSYNC    [$D40A]
(200:144, 75) A=00 X=7A Y=00 S=FA P=37 (   IZC)  50E6: 8E 0A D4  L50E6   STX WSYNC    [$D40A]
(200:248, 51) A=00 X=00 Y=00 S=F9 P=76 ( V IZ )  C026: 8D 0F D4          STA NMIRES   [$D40F]
(200:249, 73) A=51 X=F9 Y=00 S=F9 P=75 ( V I C)  C13A: 8D 03 D4          STA DLISTH   [$D403]
(200:249, 81) A=34 X=F9 Y=00 S=F9 P=75 ( V I C)  C140: 8D 02 D4          STA DLISTL   [$D402]
(200:249, 89) A=21 X=F9 Y=00 S=F9 P=75 ( V I C)  C146: 8D 00 D4          STA DMACTL   [$D400]
(200:251,105) A=E0 X=FF Y=00 S=F9 P=F1 (NV   C)  C178: 8D 09 D4          STA CHBASE   [$D409]
(200:251,113) A=02 X=FF Y=00 S=F9 P=71 ( V   C)  C17E: 8D 01 D4          STA CHACTL   [$D401]
Type ".help bx" for more info.

#4061959 Altirra 3.00 released

Posted by Xuel on Mon Jul 2, 2018 3:26 PM

Never mind, found it -- compiler bug. (MSVC team, please fix your constexpr pointer arithmetic....)

That works! Direct3D 9 works fine. 32-bit works fine. With and w/o VBXE works. Thanks!

#4055521 FujiConvert 0.1

Posted by Xuel on Sat Jun 23, 2018 5:14 PM

Thanks for the tip , trimmed down the MP3 to 2 minutes and now I'm able to playback the PDM.
Still trying to accomplish the same with sox but using these parameters

sox --no-dither --norm Wanderlust_trimmed.mp3 --type raw --encoding un --channels 1 --rate 44000 --bits 8 Wanderlust_44000.pdmpv 
I get a very loud , way too fast (Chipmunk style) PDM.
Anybody has a clue how to convert to IDE PDM format using sox ?

You need to interleave the pcm samples in a specific way.





#4044712 FujiConvert 0.1

Posted by Xuel on Fri Jun 8, 2018 4:04 PM

Hello Xuel


attachicon.gifThe James Bond Theme.zip






The only thing I would suggest is reducing the Gain parameter to 1 for this song. This song spends most of the time using the full dynamic range, so by using FujiConvert's default gain of 1.5, you get a lot of clipping. Here it is with Gain set to 1:


Attached File  The James Bond Theme pcm4+4 stereo 32760Hz atarimax pal.zip   850.07KB   29 downloads

#4044180 FujiConvert 0.1

Posted by Xuel on Thu Jun 7, 2018 8:53 PM

Hello Xuel
Just tried FujiConvert 0.2.1.  At first I thought I had done something wrong.  But if you press the space bar when asked to press any key, the sample won't play until you hit the space bar again.  Oops.
And could you please add the option to choose between "start over" and "stop" when the end of the sample is reached?

Good point. This happened because I added space as a play/pause toggle. I'll fix the keyboard routine so it doesn't think the "any key" keypress is a keydown event for the play routine.

I'll also put a loop/stop toggle on the todo list. And Escape to return to the splash screen.

#4043750 FujiConvert 0.1

Posted by Xuel on Thu Jun 7, 2018 9:27 AM

Ran a 44KHz chirp through the converter targeting 8KHz, and it looks like both Chrome and Edge are using pretty bad resampling filters -- no low pass filtering, sine wave frequency sweep gives textbook aliasing. Quick web search suggests they are doing linear interpolation. Firefox does a better job and appears to have a proper downsampling filter, but it also fails to convert from 44KHz to 8KHz entirely, throwing an Operation not supported error when creating the OfflineAudioContext.


Ugh. Thanks for testing! Looks like some have proposed adding a resampling-method option to WebAudio (example issue thread) but so far the decision has been to leave it up to the individual browser. Looks like the WebAudio spec also states that browsers must support at least 8000Hz to 96000Hz sample rates. FujiConvert's 8kHz rate is actually two scanlines so comes in at 7800Hz or 7860Hz, just under the supported range.


I'll look into adding explicit sinc resampling code to FujiConvert.

#4043598 FujiConvert 0.1

Posted by Xuel on Thu Jun 7, 2018 2:03 AM

Hello Xuel


Have you fixed the noise problem CharlieChaplin described yet?  If not, please do so as soon as possible.  PLEASE!!!




Mathy  (who's trying to be patient, but not having a lot of succes...)


Fixed in FujiConvert 0.2.1. Change log here.

  • Loop at end of audio
  • Support for XEGS cartridges
  • Simple dither