Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by StephenHorn

  1. I think your conclusions are correct. I'm actually a little surprised the kernal is where support is implemented for using the keyboard as a joystick. I would have expected the emulator to pass along keyboard state data, but I can't recall ever looking into it too deeply. I'm not all that surprised that the BASIC command does not support the second byte of data, especially after reading the documentation for JOY on BASIC 3.5. If the goal of BASIC was to maintain backwards-compatibility, then JOY will likely never support more than the D-pad and one additional button.
  2. Unfortunately, the only thing I wish could be revisited is the 640x480 resolution, just because it's proving hard to find new monitors that will natively support that resolution. Folks support 5:4 multiples close to that, and 16:9 multiples close to that, but when it comes to 4:3, the closest you tend to see is 800x600 or 1600x1200. I don't understand why monitors worked out that way, but... well, they did. A pity. That's hindsight for you, though.
  3. The emulator was programmed to contain random data because supposedly that mimics the hardware's state. I couldn't tell you whether that's an assumption or whether that was informed by conversations with the VERA's designer, Frank van den Hoef. Since Frank wrote the original implementation of the VERA emulation, I'm assuming it's how the hardware actually behaves.
  4. Proper pathfinding was not common in games of the time because of how expensive they are to execute. Even games as late as StarCraft didn't implement "proper" pathfinding such as A*, instead choosing various strategies to "wrap around" obstacles and get out of problem areas. Actually, since players' expectations for map size has increased almost as much as the CPU power required just to manage and draw those maps, pathfinding has remained a difficult problem, with novel solutions still being invented, which all have pros and cons under varying circumstances. So don't worry if you never get A* running at speed on an X16. :3
  5. I don't have time to find the exact location of his solution, but didn't Ben Eater do some kind of clock division for his homebrew VGA circuit?
  6. Mostly correct. The one caveat is to make sure you stz $9F25 to make sure you are setting the VRAM address of ADDR0_x, instead of ADDR1_x. ADDR0_x is accessed through $9F23. ADDR1_x is accessed through $9F24.
  7. Thanks for the update, Lorin. It must be absolutely maddening for everyone on the team to be so close to launching the fundraiser for production, but for the bugs. Good luck!
  8. It's funny you should mention "at a reasonable speed", because even modern game engines struggle with "the bullet problem" -- what happens when an object is moving so fast that its entire volume can travel from one side of an obstacle to the other within the span of a single frame. Actually, in some ways, the problem is harder today with rigid body physics, where you don't typically express world geometry in terms of "volumes" and instead reduce it to a series of surfaces. This means it's actually easier for small objects to move fast enough that it appears to "pass through" the solid surface. Typically, modern physics engines attempt to resolve this problem by taking multiple interpolating steps from a start position to its end, hoping that by taking smaller "steps" within a frame they'll detect this kind of condition. This is why collision quality in engines like Unity or Unreal have multiple settings, so a large and slow object can skip the extra interpolation, while literal models of bullets, traveling at bullet-like speeds, can hog all the CPU time by making many hundreds of steps between each frame. Of course, for bullets and the like, many 3D games these days also choose not to simulate bullets at all, they just cast rays into the scene. These games' behaviors are commonly referred to as "hitscan". Overwatch, by Blizzard, has a number of heroes which use hitscan weapons, while others use finite-speed projectiles. But you can find bullet-speed projectiles at least as early as Max Payne, which has a bullet-time mechanic where you can see the bullets traveling. It's also possible to calculate the bullet trajectory from one frame to the next and then raycast along that segment of the path, which has its own pros and cons (this can be inefficient if there are a lot of bullets in the air at one time). So, "a reasonable speed" has always been an interesting problem, if you're trying to push the envelope for some reason. I suppose, putting my game designer hat on for a moment, the question is: Why do you need bullets that small to travel that fast? Like, what's the purpose, and would it be just as well to make the weapon's attack instantaneously travel along the line?
  9. All I can really add is that is was common for games of the period to rely on simple axis-aligned box logic to detect collisions - this is where the term "hitbox" comes from - because it was frequently considered way too expensive to have pixel-perfect collisions. It was a requirement, then, that the graphical assets to conform reasonably well to some minimal set of hitboxes (in games this was typically 1 or 2 boxes total for the player, and 1 box for enemies, but needs varied). A helicopter game where the heli is viewed from the side and can actually tilt in the direction of movement would be difficult to express in such hitboxes, so might require some special case logic. I would think this is fine as long as we're talking about 1 such special object in the scene, but I wouldn't expect there to be an abundance of processor power for, say, enemies to have the same kind of collision logic with random objects.
  10. $1F9C1 is Frequency word (15:8) in the VERA's PSG. Assuming $1F9C0 is $00, this is setting the PSG's frequency to 381.47Hz, somewhere between F#4 and G4. I would assume the intention is to produce G4, so you would want to set $1F9C0 to $1C.
  11. A straight translation into 6502 assembly would be: lda #$00 sta $9F25 ; Set ADDSEL to 0 lda #$C1 sta $9F20 ; Set ADDR0_L to $C1 lda #$F9 sta $9F21 ; Set ADDR0_M to $F9 lda #$01 sta $9F22 ; Set ADDR0_H to $01 lda #$04 sta $9F23 ; Write $04 to VRAM addr $1F9C1
  12. In that case, my vote is the same shade of white as the premium WASD keyboard.
  13. That raises another good point. Most consoles over history have placed the controller ports as close as possible to the bottom edge of the front face. Exceptions are the NES, right locates them to the right, and the Nintendo Gamecube, which locates them above the memory cards on a plate that, itself, is centered on the front of the case. Personally, I think the renders and drawings of the case look great, especially for being a customization on an existing model so as to keep the price down. I only wish I had a VGA display in a matching shade of white. All of my displays are flatscreens in matte black. So nevermind the welded bonnet, my Porsche is always going to look a bit like someone tore the spoiler off of a complete different car altogether and mounted it anyways.
  14. Weeeeeeelllll... in terms of PCs, you're absolutely right. Nobody puts the majority of that stuff on the front. Laptops will locate them on the sides. PC cases these days, especially for enthusiasts, will plant a pair of USB ports on the front, and maybe headset plugs. Videogame consoles, on the other hand, have a very long history of locating all the controller ports on the front of the units, starting as early as the Atari 5200, and including the TurboGrafx-16, every Nintendo console until the Wii, every Sega console starting with the Sega Master System, every Sony console ever, and every Microsoft console until the Xbox One. It's notable that USB ports are starting to disappear from the fronts of game consoles. I'm ambivalent as long as the USB ports are somewhere and the included charging cable is long enough to reach around to the front of the unit, where my controllers are likely to sit. That's my two cents of input. I suppose if I'd seen a poll on where to locate the controller ports, I would have preferred the front but I completely understand if they're in the back for various reasons. It's not a big deal to me, just an opinion.
  15. I mean, when you open it up to 16-bit, you really get into what is considered a golden age of videogames. It gets really hard to whittle down a list when you've got the SNES library alone, with classics like Star Fox, Super Mario World, Legend of Zelda: Link to the Past, Super Metroid, Harvest Moon, Final Fantasies II and III (U.S. numbering), Chrono Trigger, Secret of Mana, Mario Paint, Pilotwings, Donkey Kong Country, F-Zero, Super Mario Kart, Earthbound, Megaman X, Super Castlevania IV, Actraiser, Dragon Quest V... ...and this is right off the top of my head. I haven't even started on the Sega Genesis library, which is almost as long and storied. And I've omitted cross-platform titles and ports, because you simply don't need them at this point to overwhelm the selection criteria. The death of the arcade was undeserving and not for lack of quality work either, but somewhat understanding since the home console market was so consistently amazing that arcades just couldn't compete with them. Not even the ultra-wide screen 6-player X-Men. And 16-bit PC games from around the same time invented the AAA gaming industry. I was a Nintendo kid, so most of my personal favorite titles from the 16-bit era were Nintendo titles. Even narrowing the field to just the SNES, I honestly can't pick 10, there are simply too many deserving titles in contention for the list, and adding Gameboy games to the list doesn't really help. Nintendo had a great generation. Squaresoft had a great generation. Rare had a great generation. Capcom had a great generation. Pick a title from any of their SNES libraries, and odds are it deserves a spot in the top 10. For me, anyways, it's a lot easier to discuss a top 10 from the 8-bit era. Duck Tales (NES/Gameboy, Capcom). With enough entries in the 16-bit list, this title would still good enough to break into the list before some other SNES classics. The gameboy port was faithful and great road entertainment, as well. Pokemon Red and Blue (Gameboy, Game Freak). Honestly, late-era Gameboy games are almost unfair to include in the list, because they were amazing works. Super Mario Land 3: Wario Land (Gameboy, Nintendo). I mean, see what I mean? Great platformers that were moving the genre forward came out on Gameboy hardware, alongside other SNES platformers that were still catching up. Super Mario Bros. 3 (NES, Nintendo). But okay, I can probably keep myself to the NES and earlier at this point, I just needed to get those few in. Final Fantasy (NES, Squaresoft). Honestly, I can understand why Square didn't bring FFII to the U.S. But why not FFIII? It would likely have supplanted the original's place in this list. Mega Man 2 (NES, Capcom). Legend is that this was an unfunded work of love. I have a cousin who can still beat this game with just the arm buster. Tetris (Everyting, Multiple developers). I mean, I should be rightfully strung up if I don't include this. Legend of Red Dragon (BBS, Robinson Technologies). I mean, I had to do something with Mom's dumb terminal and modem, and one of my teachers introduced me to the world of BBSes. Ironically, not one of the teachers from the school's computer room. That's a long story for another place. Kaboom! (Atari 2600, Activision). Personal tilt here. I kept coming back to this one, and a number of Activision titles for the 2600, even after our family had an NES with a respectable library. Pac-man (Arcade, Namco). I'm going to level with folks here. Asteroids was great, Missile Command was great, Battlezone was epic, but in terms of time and quarters spent in the 8-bit era, Pac-man had my loyalty. Criminey, I'm out of slots. Uhh... honorable mentions (in no particular order or platform): Asteroids Missile Command Battlezone TMNT (yeah, that one) TMNT II: The Arcade Game (yeah, I'll mention the version that was back-ported to 8-bit on the NES) Arkanoid Breakout Defender Video Pinball Starmaster Metroid Combat Donkey Kong Barren Realms Igloo! Donkey Kong Jr. QBasic Gorillas (does that even count at 8-bit? Probably was 16-bit...) Mixed Up Mother Goose (Hey, I was four at the time. I get to include this.) Oregon Trail (ran out of room, to my shame) Track and Field Excitebike Duck Hunt The Legend of Zelda ...ah hell, who am I kidding, this list is never going to end.
  16. Hear hear! I have an uncle who's literally named "Spark" within the family. I imagine you only need one guess why. Today, he works as a contractor for a NASA project to develop batteries for fully-electric airplanes.
  17. Something else that occurs to me, and if there's an engineer or technician who reads this then please correct me if I'm wrong, but wouldn't Dave's choice of fuse have nothing to do with whether or not the PSU was dead? I mean, there are three possibilities, right? Either the replacement fuse was correct, or it was wrong and would not blow in the event of overdraw, or it was wrong and would blow under normal circumstances. If the fuse was correct, then it was correct and the PSU was simply dead. If the fuse was wrong, and would not blow in the event of overdraw, then we would have seen magic smoke, angry pixies, or Dave might have simply died(*) on camera. Since none of that happened, the PSU was already dead. If the fuse was wrong, and would blow under normal circumstances, then it would have blown if the PSU was not dead. Since that didn't happen, the PSU was already dead. In all of these cases, the PSU was already dead and the choice of fuse made no difference. (*) If it bleeds it leads, right? I mean, dying seems like a steep price to pay to entertain one's followers, but some youtubers will do damn near anything for that ad revenue. I assume Dave's financial means are such that he doesn't need to stoop to such grotesque tactics. Besides, brushes with death is a niche already being filled by Mehdi Sadaghdar on ElectroBOOM.
  18. Well, it looks to me like this was posted to General Retro Chat (not X16), so this seems appropriate enough. Thank to @Perifractic for signal-boosting Dave's response to the public reaction. It's too bad the IBM guys made their monitor power cable more complicated than first appears. The only reason I wondered about Dave's continuity test before inserting the paperclip was because I'd watched the videos out-of-order and so knew he was about to blow up the power supply. I would be interested in a video from an engineer doing a proper tear-down of one of those machines (possibly the one Dave had, even, since it's already presumed dead) to learn how that cable worked, among other things. Maybe donate that machine to EEVBlog? I'm sure he'd love to explain all the ways someone could turn a bodge into a botch with that thing. I have, personally, used paperclips like that in the past. I'm not an expert, but I did learn of that technique from experienced troubleshooters, and had fortuitously found a guide that was directly applicable, so there was no guesswork involved. That said, I've also seen folks use small-ohm resistors (100Ω, I think?) in some circumstances just to make sure they aren't actually shorting something.
  19. I have no idea how many people here will be familiar with internet-sensation musician and remix artist Niel Cicierega. His remixes and mash-ups focus on cultural references from the 80s and 90s. His previous album, Mouth Moods, was pure genius and went absolutely viral, remixing songs like Ghostbusters' "Who you gonna call?" and mashing up the likes of Drowning Pool's "Bodies" with Hot Butter's "Popcorn". Look, don't ask me why that works, I have no idea, it's why Cicierega is brilliant. His latest album, Mouth Dreams, has just been released, and maybe folks here will like it, or maybe it just veers too far into the surreal. It focuses more on 90s cultural and music references, so maybe a little out of the most common bracket for this group, but I still want to share. If you're in the mood for something weird and possibly wonderful, give this a listen.
  20. I think that's a fair point. I wanted to pick something that had an easy-to-identify bit pattern, because I can't easily do things like recolor text in the webpage input. Will try harder. If we wanted to expand on this, to the letter '6', we can see that should be at tile 54, which should be at VRAM address $0F800 + 8*54, or $0F9B0. FORI=0TO7:PRINT VPEEK(0,$F9B0+I):NEXTI gives us: 60 102 96 124 102 102 60 And in binary, thats: %00111100 %01100110 %01100000 %01111100 %01100110 %01100110 %00111100 Which looks like a '6'. With some finagling with the colors, the '6' is easier to see. %00111100 %01100110 %01100000 %01111100 %01100110 %01100110 %00111100 Further, you can see that the bit pattern puts the left-most pixel in the most significant bit ($80, or 128).
  21. Yup, thanks for pointing this out! I had completely forgotten about this thread.
  22. My vintage hardware is pretty much entirely video game consoles: Atari 2600 Atari 5200 NES Gameboy I suppose if you want to get technical and define "vintage" as anything 20 or older, we can add: Sega Genesis Super NES N64 I wouldn't exactly call them "workstations", though. Except for the NES, these are all the original devices I'd played games on growing up. Never sold them, and eventually took them with me when I moved out of my parents' house. I used to have a Macintosh SE at my parents' house, which Dad had gotten when one of his employers was clearing out old workstations. I wonder if it's still around somewhere. But sadly, I missed the 80s PC scene at home, and instead we had a dumb terminal with a 2400bps modem that Mom used to work from home (she was a full-time programmer).
  23. @SlithyMatt has you covered, boo: His example hello world files are located at https://github.com/SlithyMatt/x16-hello-cc65
  24. Besides, kids already have iPhones and iPads. Suggesting that this would be something to choose instead of iDevices is basically denying reality, especially since iDevices have three key benefits over other portable electronics: Kids being able to stay connected to their friends. Parents being able to stay connected to their kids. Parents being able to track of their kids' location. Not to mention a devastating advantage in third-party software support. The only possible way you could come out ahead here is if you can somehow get Fortnite playing on your 6502 project, and then only because Apple and Epic have gotten into that giant legal fistfight... Also, the last time someone tried to make a low-budget console, it failed rather spectacularly. At least we got some ridiculous marketing out of it. It's not a selling point to kids that its based on a 6502. That's a selling point to adults who remember the 6502-based platforms of yestermillenia, and want to nostalgically relive some of those memories. Kids, broadly speaking, don't care about that stuff.
  • Create New...

Important Information

Please review our Terms of Use