Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by ZeroByte

  1. The YM2151 can really do some interesting things if you go "off-script" with it. For instance, the KeyON register has an interesting way of gating notes. Instead of a single gate for each voice, you can gate the 4 operators individually. This means that if you're clever with the ADSR values of the 4 operators, you could make a sound that features a continuous tone but with a cyclic modulation - so something that kind of goes WooWooWooWooWooWoo... - It's hard to describe this in text, but I'll give it a stab. (I'd have to make a program to demonstrate this as your typical tracker / OPM DAW plugin isn't going to offer this function either). Suppose your tone-generating operators have a D2R of zero - meaning that once the envelope reaches the sustain level, it will not decay anymore until you gate in a release on the voice. You start your sound by triggering all 4 operators. e.g.: let's say operator 0 is the modulating operator Now let's say one of your modulating operators does have a full ADSR with a D2R so the modulation runs its course. Say the sound goes like oooOOOAAAAOOooo (and stays "oooo" thereafter). You can re-trigger only that one operator and get another cycle of the effect w/o the sound ever decreasing its volume. So if you have some sound effect that represents something like a plasma beam firing, or a UFO engine, or something like that, you can just keep re-triggering the modulating operator to generate the effect. Maybe I should try whipping something up in BASIC as a demo and do a "how-to" video on it or something.
  2. If you're going to try your hand at making an Atari 2600 emulator, then I'd say Cosmic Ark should be in your testbed. Pitfall II is another special case, because it has an expansion chip in the cartridge, and is the only game with that chip so it's kind of a special case in your emulator. (But a worthy one IMO as that's a fantastic game for the 2600)
  3. Cosmic Ark is correct. The star field is the reason the game exists. I forget which graphic element is glitched to create the effect but when Furlop saw it, he designed Cosmic Ark around it to show it off. I guess what is meant by “highly regarded” is that it’s not an obscure title and it’s considered a good game. Well done. And the snubbed game was Demon Attack. https://web.archive.org/web/20091227184554/http://robfulop.com/blog/2008/04/14/making-david-crane-cry-the-origin-of-cosmic-ark/
  4. I don't remember the conference, but I watched the guy give a talk about this and it was quite amusing. Even decades later, he still feels the satisfaction of stumping the king of the mountain, making him come down from the ivory tower in person. The rivalry between devs definitely helped push the edge of the envelope for us gamers. My favorite anecdote involving David Crane, though, is on the Atari Age forums. They were discussing how Pitfall II managed to get audio out of the expansion chip in the cart, as the VCS only had enough lines on the cart port for an address and data bus. No audio lines, no bus mastering capabilities, etc. Just enough to plug a ROM onto the bus, yet he was able to read and write the chip. Well, that thread went dormant for ten years, and then David Crane himself posted a long, detailed post about how it worked and how his program then got the audio into Stella, etc. Two posts after this, someone posted: "Now THIS is how you necro-bump a thread, folks!"
  5. SNES games were written in assembler, by and large. Certainly they were at Nintendo, which we all know after the Gigaleak happened. I've read the source of Zelda LttP - very cool stuff.
  6. Okay, here’s one: This second-gen console game was made specifically to get back at the top devs from Activision. In the previous year’s CES, the Activision guys snubbed this game’s creator, not dropping by to check out his new game. He vowed to create something so cool that they would HAVE to come by in person to see it. He stumbled across a glitch in the display chip that rendered a cool, useful effect that was technically “impossible.” So he built this game around that effect. Yes, it's a fun game, and yes it sold well and was ported to other systems, but the real reason he made the game was to be a tech demo of this cool effect. Sure enough, at the next CES, David Crane himself dropped by and tried to nonchalantly figure it out w/o admitting he had no idea how it was done, much to the creator’s glee. Incidentally, both this game and the prior snubbed game are both highly regarded by classic game enthusiasts.
  7. To me, that's the #1 reason to embrace the system in whatever form. If you don't wanna shell out bux for a real computer, you can still run it in emulation and, there's both an audience for any nifty programs you may write, along with a source of nifty programs to try out. I'm hoping this situation continues until we start to see games come out that actually push the system so we can see what it really can do. I think something north of Genesis and south of SNES, but not right on the line between them, as it could provide "Lucasfilm/Sierra" style adventure gaming that would easily supass both of those systems. The X16 pushed to its limits will result in a very interesting type of gaming experience IMO.
  8. The whole "It's just a PET with a VERA" argument is kind of unfair. The NES is just an Atari VCS with a PPU and APU glued onto it. The Atari 800 is just an Apple 1 with a video chip glued onto it. Etc. Let's face it - from the perspective of anyone who played games or made / watched demos, the things that give the systems their unique character ARE the video and sound chips. They pretty much all had some kind of data ports, etc and peripherals were available or not, had different UIs and whatnot, but they're all essentially a 64K address space driven by a 6502, and having some assortment of peripheral ICs mapped into this space by glue logic on the bus.
  9. I meant something like if there weren’t production 65c02 chips, an FPGA based chip wouldn’t seem off-putting
  10. Yeah, looks like IV hit the NES in 1990. I always did remember the town music from C64 Ultima III because a friend had that game, and I really liked the music. I was just more of a Bard's Tale player than an Ultima player.
  11. That sounds like a great guess. I'm thinking probably IV though, as that chapter is much more well-known and is featured regularly on 8-BitGuy's channel. Even if I'm right, give the credit to Matt because I wouldn't have thought of Ultima on my own. (never got into that series) I've got one to post, but want to wait until this one is solved, first.
  12. I think the only remaining issue I didn't address in my essay above is that there remains the subjective nature of FPGA replacements of real classic ASICs. There are those who will never be satisfied with any replacement because the original is "just better." "It just doesn't sound as good as a real SID" - or in the case of the demo scene wizards: "It doesn't exhibit this particular quirk that we leveraged to do such-and-such" And then there's the more general philosophical perspective that there's something intrinsically beautiful / valuable in running "the real thing" vs a reproduction, and that's not even limited to computer chips. You could go make an exact replica of a '68 Chevy Corvette, but it wouldn't be the same as a well-maintained original that has existed for 52 years. However, this whole line is irrelevant to me where X16 is concerned. The only "classic" chip on the entire board with any kind of character is the YM2151. Everything else is just a sprocket (VIA, 65c02) and making those disappear into an FPGA wouldn't upset anyone. Thus, as a new invention, VERA doesn't have any kind of legacy to live up to / be measured by. It's a unique, brand new creation, so saying "it's an FPGA so it's cheating" just doesn't hold any water with me.
  13. I think an FPGA can be perfectly fine as a replacement for an ASIC in a retro project if done properly. What is an FPGA? At it's heart, an FPGA is just a re-programmable ASIC. ASIC vs FPGA is analogous to ROM vs RAM. One comes from the factory a certain way, unchangeable, while the other is malleable. So having an FPGA video chip or I2C bus controller is ostensibly no different than having an ASIC like the NES PPU or the VIC-II tied to your bus. This is quite obvious when you consider something like the FPGA-SID, which has the same form-factor as a real SID, and fits right into the same socket, and does exactly the functionality of the SID, and only the SID. Hell, one of the reasons the YM2151 has been allowed into the X16 despite violating the "currently produced chip" rule is that there's an FPGA core available to use if real OPMs become impossible to source. i.e.: It's like having an FPGA SID in your C64. You would be able to plug an FPGA-OPM into the YM socket of the X16, tap it with your finger, and say "this right here's the FM synth chip." If you hooked a scope on the pins or the bus or whatever, it would look identical to having a real YM2151 on the bus. Apparently, FM synth is pretty much sample-accurate nowadays in emulation, and doing this emulation in silicon ala FPGA is no different either. So why not? The "problem" with FPGAs: It's when you start having a single FPGA that incorporates more and more functionality that it starts to just resemble a "north bridge" chipset as opposed to an ASIC that you can point to and say "that's the graphics chip." VERA pushes the line with this, being that it also does PSG sound, PCM sound, and SPI bus mastering. To me, though, this is an acceptable cost-saving measure. If you strictly adhere to a through-hole form factor + 1:1 chip to function parity, then you're buying 5 or 6 FPGAs and letting a lot of the unused capacity of each one just go to waste. Now, let's not forget that even ASICs often present lots of merged capabilities. Even the all-mighty SID itself (peace be upon it) is not a pure sound chip. It also does paddle controller decoding. A more extreme case is the POKEY which isn't just a square wave PSG. It has all kinds of GPIO pins and analog->digital input decoders in it. The VIC-II was also responsible for providing the system clock and DRAM refresh. Let's face it - computer manufacturers have ALWAYS done stuff like this to cut costs. It's just that now you can use an FPGA to merge whatever kinds of in-silicon functionality you want into a single chip. Now manufactures just make "generic chips" that can be configured to do whatever system builders want, instead of having to make a production process for each and every ASIC. The "endgame" with FPGAs: Why do many retro computing enthusiasts feel aversion to them? Obviously, as the power of an FPGA increases, you can build more and more of your system into a single chip. Eventually, you just have an FPGA on a PCB that's nothing more than a breakout board to route physical connector ports back to pins on the FPGA. At this extreme, you have the same computing experience and programming experience, but now the whole computer just exists inside the little black die at the center of a white board from PCB Way. If you want to fiddle around with the hardware, then too bad - it's all inside that one piece of silicon. At this point, you're only one step away from the entire thing vanishing as it is replaced entirely in software emulation running on a modern PC. So where is the line drawn? When does it cease to be a "real computer?" Bottom line: It really has nothing to do with FPGA vs ASIC. Given that it must exist as a physical device, what the question really boils down to (imo) is: how much of the system is in a black box (IC) and how much of it is traces on a PCB between individual chips? Let's not forget that even those simple ASICs and general-purpose ICs are just older-tech ways to reduce the amount of discrete components on the system. extremes: [100% discrete components] <-------------> [SoC] You could make a Commander X16 computer that exists anywhere on this spectrum. It's just a question of how much circuitry disappears into little black rectangles, and how many of those there are. Of course, the pure discrete component X16 would be huge and consume kilowatts of power, break down often, and be susceptible to interference from your toaster, but damnit it would work. (I saw a post on the /r/beneater subreddit where a guy made an NES PPU on breadboards).
  14. I’m considering a music player that will use 16-but output but 8-but input on PCM in order to gain lots of overhead for sample mixing. That will eliminate the need for pesky multiplication and division .
  15. Technically the VERA PCM is better than CD quality. 48KHz 16bit stereo. However, like bitmap mode, turning all the options to max quality hits a wall where you really can’t feed it what it needs at those settings. 640x480 @8bpp won’t fit in VRAM. So you can have 640x480 OR 8bp, but not both. 48KHz 16bit stereo will fill 2MB quite quickly. (10 2/3sec roughly)
  16. Kliepatsch's Concerto demo shows you what kind of goodness can be made with the simple PSG functionality. What it loses in "features-per-voice" are made up by the sheer number of channels. If you bolt on a lot of your own modulations, such as PWM, or ADSR, then you can make the same kinds of sounds with the PSG as you could with the SID, with the exception of the filters and ring modulator. At its core, it's the same thing - 4 digital waveforms at selectable pitches. Also, the PSG can't key multiple waveforms on the same voice at the same time like SID can. But since there're 16 voices, the VERA PSG can actually generate MORE kinds of sounds than SID can in that regard, even if triggering all 4 waveforms simultaneously on one voice were possible.
  17. Try poking some values into the h_start/stop values and h_scale values while running screen in 40-col mode. (And the vertical values too)
  18. And here's some BASIC that scrolls some text. On line 800, I intentionally left the logic that chooses the first off-screen column as a math-y formula with a logical AND instead of just doing it with a loop of c=c+1:if c>128 then c=0, because in a game with scrolling, you're going to want to be able to address tiles by their screen position, and this program shows the logic of choosing column 80
  19. Here - run this BASIC program and you'll see it demonstrated quite clearly. Note that the default screen tilemap width is 128 tiles wide, 8px wide, which is 1024 scroll values to wrap once around. 4096 is the total number of possible scroll values. Thus the screen wraps 4 times during this program. The garbage you see during the scroll is the portion of the tilemap which is off-screen by default, but still part of the tilemap. Essentially, that's how much off-screen (horizontal) real estate you have to work with in a scrolling engine.
  20. Yaknow, a user port device that presents the X16 file system as a USB stick would be cool. Run a bridging application on the X16 and then just drag and drop files on your PC.
  21. Yeah, it should do something more like this: __interrupt void myInterrupt(void) { if (*VERA_ISR & VERA_LINE) { vbcounter++; *VERA_IRQLINE_L = 100; *VERA_ISR = VERA_LINE; } asm { jmp (default_irq_vector) } } (I can't figure out how to get my own "code" block on this thing, so just imagine these changes: After *VERA_ISR = VERA_LINE; asm { ply plx pla rti } and put the asm{jmp(default_irq_vector)} into an else{} clause p.s. it kind of sucks that they didn't design the 6502 with a dedicated vector for BRK in addition to reset, IRQ, and NMI.
  22. There was a flurry of pull requests being accepted, and then nothing. The current state of the code in GitHub uses $00-$01 for ram/rom banking control. I'm really hoping that someone pushes a button soon and makes the official R39 snapshot, because I'm still writing any code I intend to share/post for R38 and not updating cc65/ca65 until R39 is official.
  23. Man, Starfox’s composer must have been listening to this Afterburner track when making the stage 1 BGM.
  • Create New...

Important Information

Please review our Terms of Use