Essentially, there are 4 channels, each providing a number 0-15 on every tick. Emulator should mix them together (arithmetic average), scale up to 0-255 and feed to the sound buffer, adjusting the tick rate (4.19MHz) to the sound output rate (e.g.: 22 kHz) - taking every ~190 value (4.19MHz / 22 kHz) is a good start.
Now the 0..15 value that should be produced by each channel depends on its characteristics, but it's well documented:
Channels 1 and 2 produce square waves, so a bunch of low (0) and high (15) values, with optional volume envelope (gradually going down from 15 to 0 on the "high" part of the square) and frequency sweep (alternating 0s and 15s slower or faster).
Channel 3 allows an arbitrary waveform, read from the memory.
Channel 4 is a random noise, generated by the LSFR.
The article doesn't mention the recent development in Amiga extension cards - PiStorm is an easy (and affordable) way to max out the specs of any Amiga, A600 included.
I think MNT / mntre also have some Amiga expansion cards for graphics and sound. For me I'll keep my memories for fear of being disappointed. Maybe if the mini had included shadow of the beast, lemmings, bubble bobble, great ghiana sisters, I might have been more tempted. But then I would have wanted devpac and a true 680n0 chip + the fun chiplets to play with.
I never heard of a graphics card for the Amiga until a decade later. In 92 I bought a IBM clone that cost 1/2 the price of an Amiga. One of my roommates had an Amiga 1000, and he got another 600 when it came out. In 96, I got one in trade for a Macintosh, while the roommate and I both got Lucas Acellerators and IDE interfaces for pennies on the dollar. We played games that used the serial ports. We had 1mb of chip ram and 2 mb of fast ram, the price of which was falling fast.
I think the lucas boards were 25mhz MC68030,and within a few weeks,we had gotten 33mhz parts w/ FPUs and soldered on new crystals. Such an incredible source of cheap fun, while the I world was struggling with widows 1,2,3. The Amiga was, as was claimed, head and hands above the PC until the 486s became cheap 8~10 years later. Amigas ruled. Too bad commodore were such schmucks.
I've always seen A600 more like a budget version of A1200 rather than a new variant of A500: better graphics chip, IDE port, PCMCIA and new look-and-feel of the Workbench 2.04 (at the first sight hardly distinguishable from the Workbench 3.0) gave a taste of something new.
I feel that "budget A1200" is a misnomer. The IDE port was its strongest addition, but internally it's still just an A500 with ECS instead of OCS, and that never really panned out as leverage. Not even the additional 512KB of chipmem made a splash. No more than a handful of titles, productivity and games alike, took any advantage of it. Incomparable to the upgrade seen with AGA and a 14 MHz 020.
Sure, in terms of hardware, it was a slightly better A500, and you could plug it into better monitors than the A1080, and you could finally get "normal" IDE HDDs which were a fraction of the cost of SCSI HDDs with some expensive third party adapter.
But also, Kickstart/Workbench 2.0 was a million miles better than 1.3, and it opened access to a lot of very cool software. Even though the A1200 and A4000 got KS/WB 3.0, most new software remained compatible with 2.0, and only used 3.0's APIs for bonus functionality... the big leap was from 1.3 to 2.0
(of course, if you were purely game-brained, you'd probably be complaining that your A500+ or A600 didn't run KS1.3... bleh, you had enough RAM to softkick it if you wanted)
Indeed, it is a shame that the A600 didn't come with Kickstart/Workbench 3.x.
It had other improvements than just support for the AGA chipset's video modes.
"Datatypes" were pretty neat. Thanks to it, the Amiga got PNG support in all web browsers before many other platforms got it at all.
It was made of an old HTC Magic phone, acting as camera+wifi transmitter, connected to Arduino via its serial port and level shifter, to control the servo and a RGB LED. I had a lot of fan with that, even if the connection wasn't really to stable.
Thanks for sharing, maybe it's time to revive the project with the next generation of the microcontroller.
Yes, the liar have some hats. There are two ways how to conclude this:
1. If they don't have any hats, then any sentence about them would be truth.
2. The negation of the sentence, which must be truth, is "not all my hats are green". For this to be true, there must be some hats that are not green, so there must be some hats in general.
Programming a chess program was an important challenge for the "first generation of hackers" working on the mainframe machines like TX-0 and PDP-1 in '50 and '60, as described in "Hackers: Heroes of the Computer Revolution" by Steven Levy. I highly recommend this book, I think a lot of people here can recognize their own passion and interests in the stories described there.
Not even 1024 bytes. There were 1024 bytes available to the computer, but some of that was required to store what was displayed on the screen. Exactly how much depended on how much of the screen was used(!).
I love the slow pace of the video, including a few minutes presentation of all available programs. And indeed, there are programs to test dice and coin bias:
We can also assume that the p/q=√2 is already the simplest form of the fraction, since every fraction must have one, as in the first section of the article.
Then if we figure out that both p and q are even, it means that p/q can be simplified (by dividing p and q by 2), which contradicts the assumption about the simplest form - and we don't need to use the infinite descent.
That assumes that every fraction has a unique simplest form. The first section of the article makes no such claims about the existence of a simplest form of fraction. The proof uses just algebraic manipulation, the fact that a sequence of strictly decreasing positive integers is finite in length, and the definition of a rational number (there exist integers p, q (q != 0) such that the number can be expressed as p/q).
t0mek sais "the simplest form", but the comment is fixable by changing that to "a simplest form". (For example, if hypothetically a/b and c/d where somehow the same number, and yet somehow there is no x such that a/b = xc/xd, the argument about how 2 divides into a and b also applies to c and d.)
I was going to say this. The proof, unfortunately, sidelines into some very deep mathematics that it didn’t need to. I imagine but don’t know for sure that Euclid stopped where you do.
I’m not sure when infinite descent would be considered to have been formally proven to a modern mathematician but I bet it wasn’t in Euclid’s time!
I think the idea is that any strictly decreasing sequence of positive integers starting at N is a subsequence of (N, N-1, N-2, ..., 1) which has N elements, so any such sequence must have a finite number of elements.
So if you manage to produce an infinite sequence of strictly decreasing positive integers starting at a particular positive integer, then you've reached a contradiction.
Yes, I understand it intuitively, as would I think most non-suspicious people. It sounds very reasonable! As does the axiom of choice. We could even “prove” it using high school induction methods.
In practice though, concepts with infinity are very tricky, and the Greeks definitely did not have a strong accurate theory of infinity, Aleph-zero even, much less (as is the point talking about the sqrt(2)), the reals.
In this case, I think embedded in a high school proof would be the assumption that for any integer you can list there are not an infinite number smaller than them. This is manifestly true about the integers, but it is not true for the rationals, despite the two sets having the same cardinality, and a solid proof would need to be able to distinguish the reasons why. It’s this part that I think would be beyond the Greeks.
https://www.slideshare.net/slideshow/emulating-game-boy-in-j...
Essentially, there are 4 channels, each providing a number 0-15 on every tick. Emulator should mix them together (arithmetic average), scale up to 0-255 and feed to the sound buffer, adjusting the tick rate (4.19MHz) to the sound output rate (e.g.: 22 kHz) - taking every ~190 value (4.19MHz / 22 kHz) is a good start.
Now the 0..15 value that should be produced by each channel depends on its characteristics, but it's well documented:
https://gbdev.gg8.se/wiki/articles/Gameboy_sound_hardware
Channels 1 and 2 produce square waves, so a bunch of low (0) and high (15) values, with optional volume envelope (gradually going down from 15 to 0 on the "high" part of the square) and frequency sweep (alternating 0s and 15s slower or faster).
Channel 3 allows an arbitrary waveform, read from the memory.
Channel 4 is a random noise, generated by the LSFR.
See SoundModeX.java for the reference:
https://github.com/trekawek/coffee-gb/tree/master/src/main/j...