<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[The 1-Bit Forum — new engine: tftone]]></title>
		<link>http://randomflux.info/1bit/viewtopic.php?id=321</link>
		<atom:link href="https://randomflux.info/1bit/extern.php?action=feed&amp;tid=321&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in new engine: tftone.]]></description>
		<lastBuildDate>Tue, 10 Jan 2023 15:59:26 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: new engine: tftone]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2792#p2792</link>
			<description><![CDATA[<p>Whoa, a wild garvalf appears! Good to see you&#039;re still around, mate.</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Tue, 10 Jan 2023 15:59:26 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2792#p2792</guid>
		</item>
		<item>
			<title><![CDATA[Re: new engine: tftone]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2785#p2785</link>
			<description><![CDATA[<p>nice sound. It almost reminds me of some YM2149 tune / sound (Cybernoid?) with the arps.</p><p>Thanks for telling about the problem with Fuse, I was going to ask why I didn&#039;t get any sound. It looks like fuse is thinking your nice tune is some sort of data and it tries to fastload it. If you disable &quot;fastloading&quot; and &quot;accelerate loaders&quot;, (in the media options) it will play fine.</p>]]></description>
			<author><![CDATA[null@example.com (garvalf)]]></author>
			<pubDate>Mon, 09 Jan 2023 18:09:25 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2785#p2785</guid>
		</item>
		<item>
			<title><![CDATA[Re: new engine: tftone]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2752#p2752</link>
			<description><![CDATA[<p>Thanks! The bad news is that eliminating row noise in this way is tedious as hell. 0/10, would not do it again. Even zbmod with its 20something cloned cores was more fun to write.</p><p>Btw, forgot to mention, the engine breaks Fuse. A work-around is to go &quot;Media&quot;-&gt;&quot;Tape&quot;-&gt;&quot;Clear&quot; after starting the tune.</p><p>As I was looking for an alternative, I surveyed a few other emulators running on Linux on their beeper capabilities. Results were mixed.</p><ul><li><p>Mame: Still the same. Passable beeper emulation, but not as good as Fuse&#039;s. Also, no auto-load capabilities.</p></li><li><p>jsspeccy: Very noisy beeper emulation. Not usable.</p></li><li><p>ZEsarUX: Errr, no. Just no. With &quot;real beeper&quot; mode enabled, the sound is muffled as if it came from under a pillow. Turn &quot;real&quot; mode off and you&#039;re left with a screeching, grinding noise that bears 0 resemblence to the actual sound.</p></li><li><p>Xpeccy: I remember this having rather bad beeper emulation, but apparently it&#039;s improved quite a lot. It&#039;s a bit too clean, but definitely usable. I would consider switching (also because of the fantastic debugger), but unfortunately graphics render with extreme tearing. Also, no key combo to exit the program AND ignoring SIGTERM? Come on.</p></li></ul><p>So, all in all, let&#039;s hope Fuse will fix this problem. Submitted a bug report, but no response yet.</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Tue, 20 Dec 2022 10:17:20 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2752#p2752</guid>
		</item>
		<item>
			<title><![CDATA[Re: new engine: tftone]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2751#p2751</link>
			<description><![CDATA[<p>Great! I thought of eliminating the row noise as an obvious engine evolution step to take, but never really done any engine with that.</p>]]></description>
			<author><![CDATA[null@example.com (Shiru)]]></author>
			<pubDate>Tue, 20 Dec 2022 00:25:59 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2751#p2751</guid>
		</item>
		<item>
			<title><![CDATA[new engine: tftone]]></title>
			<link>http://randomflux.info/1bit/viewtopic.php?pid=2750#p2750</link>
			<description><![CDATA[<p>Ok, one more. This will be the last one for now. I&#039;ve got some more ideas, but my motivation batteries are a bit exhausted for the time being. Also I do want to work on some other projects in the coming weeks.</p><p>Anyway, tftone is basically Tritone (Digi) without transition noise. No special tricks here, just plain and boring loop unrolling. Runs a bit slower than the original Tritone (216t loop), but row length can be controlled up to ¼ tick precision. So yep, it can go really fast.</p><p>Due to the big spaghetti mess there may be some bugs hiding here and there. Ultimately I would also like to get the synth loop a bit faster, 216t is still pretty noisy. I think at least 208t should be doable.</p><p>I did discover one neat trick. Probably nothing new to some of you, but. I normally like stack-based loaders, not just because they&#039;re fast, but also because you can do POP AF and have individually set Z,C,S and P flags for a quick&amp;dirty compression scheme. With this engine however, stack-based loading wasn&#039;t feasible. So I found that actually, something functionally equivalent to POP AF can be achived with </p><div class="codebox"><pre><code>  ld a,(hl)     ; or whatever the data pointer is
  or a          ; check for Z
  jr z,...        ; end of pattern or whatever
  sla a</code></pre></div><p>Now the last one is where the magic happens. If bit 7 was set, Carry is now flagged. If bit 6 was set, Sign is flagged. SLA also flags Parity, which means we can turn that on or off individually as well, just need to pay attention to bit 6 and possibly flip another bit so the initial value is not 0 when we don&#039;t intend it to be.</p><p>Anyway. so much for that. Code&#039;s on <a href="https://github.com/utz82/ZX-Spectrum-1-Bit-Routines/tree/master/tftone">my github repo</a> as usual. Sorry for the crappy demo tune. Just wanted something fast to demonstrate that it does sound (relatively) clean, but of course that&#039;s really tedious to type up in asm. And this is actually speed 4, so it can go even faster.</p>]]></description>
			<author><![CDATA[null@example.com (utz)]]></author>
			<pubDate>Mon, 19 Dec 2022 23:55:17 +0000</pubDate>
			<guid>http://randomflux.info/1bit/viewtopic.php?pid=2750#p2750</guid>
		</item>
	</channel>
</rss>
