<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[The 1-Bit Forum — new engine: tftone]]></title>
	<link rel="self" href="https://randomflux.info/1bit/extern.php?action=feed&amp;tid=321&amp;type=atom" />
	<updated>2023-01-10T15:59:26Z</updated>
	<generator>PunBB</generator>
	<id>http://randomflux.info/1bit/viewtopic.php?id=321</id>
		<entry>
			<title type="html"><![CDATA[Re: new engine: tftone]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2792#p2792" />
			<content type="html"><![CDATA[<p>Whoa, a wild garvalf appears! Good to see you&#039;re still around, mate.</p>]]></content>
			<author>
				<name><![CDATA[utz]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=2</uri>
			</author>
			<updated>2023-01-10T15:59:26Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2792#p2792</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: new engine: tftone]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2785#p2785" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[garvalf]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=6</uri>
			</author>
			<updated>2023-01-09T18:09:25Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2785#p2785</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: new engine: tftone]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2752#p2752" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[utz]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=2</uri>
			</author>
			<updated>2022-12-20T10:17:20Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2752#p2752</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: new engine: tftone]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2751#p2751" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Shiru]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=11</uri>
			</author>
			<updated>2022-12-20T00:25:59Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2751#p2751</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[new engine: tftone]]></title>
			<link rel="alternate" href="http://randomflux.info/1bit/viewtopic.php?pid=2750#p2750" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[utz]]></name>
				<uri>http://randomflux.info/1bit/profile.php?id=2</uri>
			</author>
			<updated>2022-12-19T23:55:17Z</updated>
			<id>http://randomflux.info/1bit/viewtopic.php?pid=2750#p2750</id>
		</entry>
</feed>
