Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by john_e79

  1. I wanted a De10-Nano for more than doing only gaming but I read a review somewhere that the pro version of the programming software was about $3000 and you needed it to pretty much do anything other than playing cores someone else wrote and then I saw this: https://www.intel.com/content/www/us/en/programmable/buy/design-software.html If I'm getting into FPGAs I want to do things like maybe make a small APU, GPU, or math co-processor, so I'm looking for recommendations on one that isn't so expensive to really get started. Would be really nice if whatever it is has a Visual 2019 Community extension. As far as retro things I've got some Raspberry Pis and Arduinos here and a C64 Mini but the RPi4B only goes up through about PSP before it starts seeing frame degradation. I've got the X16 emulator running on Ubuntu on a NUC i5 right now and also an i5 Windows desktop PC which it runs a bit better on because I've got an Nvidia card in it. I've been coding a NES emulator in C++/SDL2 from my laptop though.
  2. When you say that latency isn't a problem for you and that you're a Java coder in the same reply............... Here you go, I was trying out halfNES, written in Java the other day. Yep it's got lots of frame stutters and frame skips when I test it, I put that in the category of general latency, and not just input lag necessarily, maybe I'm miswording that. I picked up Java about 20 years ago back when it was still under Sun Microsystems, which were much nicer days I think for Java, I also learned Oracle around the same time. I also picked up C# around the same time, which I still use fairly regularly. I recently started writing a NES emulator though in C/C++/SDL2 much like the X16 emulator is written in C/SDL2. I probably would not write something like that in C# or Java without writing the core of it in C/C++ and calling into it via Interop in C# or JNI in Java, using the higher level language as a UI layer. Higher level languages do try to hide some details, but I still find them very beneficial to learn, depending on what I want to do. Since your post though was about Arduinos and Raspberry Pis let me respond to that. I've got a few Arduinos and a few Raspberry Pis. You could with the Arduinos hypothetically take a sketch and make it reference some C/C++ library which could reference some inline ASM, but, you might not do that regularly. Arduinos are made to be more so "appliances" than a full OS. I've seen attempts at an OS on the Arduino but it's a bit of a squeeze, my Arduino 33 IoT Nano only has I think 256kb flash RAM so it's not much to work within. You could also try to make a bare metal OS for the Raspberry Pi and I've been in those forums before talking to various developers and there are nuances I've read about it with regards to things like the GPU, I've done some minor ASM so far on the RPi4B. I'm interested in OS development btw, so something like the X16 interests me and I plan to get one. The X16 doesn't have its ASM already watered down by a Hardware Abstraction Layer was part of my earlier point, it's direct access so you can maybe learn some interesting things with it. There are no ominous "why do you need to know that?" responses from people if you ask questions about the kernel, as there are sources to its kernel on github. I'm also familiar with the 65C02 because I've already written a 6502 emulation for a NES emulator. One of the things that makes the X16 interesting is precisely that it's not a multi-tasking system so yes, it doesn't have to think about thread safety and about protecting process memory, so, if you were delving into it, it's not so complex to learn as, say, taking in and learning the whole Linux kernel sources.
  3. Oh yeah, all good stuff. When I started out with PCs in DOS back in 92 I was tinkering around with BASIC, then in mid-93 I was in 9th grade they sent me out to Texas Tech for two weeks for this gifted program which was not super fun with the competitiveness of other students there but I did pick up LOGO there, about 96-ish I picked up Turbo Pascal then Turbo C and some Turbo ASM a little later. I was hooked on demoscene-ish things back then and Ansi Art and BBSes too. All you have to say is PCX and images of Deluxe Paint 2 Enhanced and Neopaint come to mind. I started writing a pixel art paint program in C#/UWP just a few weeks back that does pen support for my Surface Pro 7 pen with InkCanvas and hardware accelerated pinch-zoom with ScrollView and I put a small LOGO interpreter in it if you want to code pixel art using a LOGO turtle.
  4. Well aside from maybe the Arduino, the phrase Hardware Abstraction Layer comes to mind, also the words latency, and time-slicing. The Arduino though is made to be more sort of an "appliance" than to have an OS. The 8BG has a lot of various videos on nostalgic technology that I guess elicit different emotions in different people. One that really stood out to me was the Boot Sector Games video. If I had things my way maybe I would have an x86/x64/arm compatible DOS with NTFS and TCP/IP support that also can do things like PEEK and POKE to read and write memory addresses directly from C64 BASIC from the command-line. I'd put that on my RPis and NUCs instead of Linux. It's been in the back of my mind for months to try making something like that. You have to remember also, that way back in Windows 3.1/95/98 you could boot from DOS or "Exit to DOS" from Windows whenever you wanted, you weren't locked into Windows. They took that out around the time Windows Millennium Edition and Windows XP came out. It should have stayed. Plenty of people using PCs around that time just knew that Windows gives up time-slicing and so it's not very low latency when it comes to things like games. In DOS it was direct access to hardware, so you write to something like 0xA000:0000 in 320x200x256, it writes to the screen, no hardware abstraction layers of things hidden behind the scenes. It was more like this, I remember it was a big thing to have a copy of Ralf Brown's Interrupt Listing, things like this: http://www.ctyme.com/intr/int-10.htm Back then there was also no one going to and fro on stack-overflow asking, "why do you need to know that?" when asking questions about how the kernel works when you even want to learn things like KMDF driver development. There wasn't some ridiculous nonsense about how you don't own the assets in your OS on the system you just bought, that's a real thing with assets like fonts on macOS, that's why you don't see the iOS style emoticons on websites. Those latency issues with Windows time-slicing don't seem to have totally gone away with faster processors. I recently wrote a NES emulator in C++/SDL2 I see the latency there occasionally, I see it in Dosbox, I see it in the X16 emulator. There's also a reason people are buying these MiSTer devices because they want low latency. On the X16 you get to work with the hardware directly that you paid for and own, what a novel idea. So, on the Arduinos remember that they're mainly made to be an "appliance." They do a task you give it from a sketch, and that sketch can include C/C++ libraries, which could even include inline ASM if I'm not mistaken. I was just checking on my Arduino 33 Nano IoT though and it's like 32kb SRAM and 256kb Flash so there's not much to work with there if you wanted to build an OS. Not saying it couldn't be done.
  5. Nope, I built the x16 emu from github sources, that may be my issue, if that's the case there might be a regression bug somewhere. Also ZeroByte's Sonic demo works fine on Ubuntu and plays sound, just not Matt Heffernan's Lesson 17, I asked him about it on YouTube and he doesn't know. Yep, that's the issue. Just tried from the release build and it works fine. It's not working when built from github sources for some reason. EDIT: Talked to Matt Heffernan and he let me know the YM2151 registers were changing in the next version so now it all makes sense.
  6. I've been thinking along the same kind of lines. I went through some tutorials and learned a bit of Arm ASM. I've got RPis and NUCs here that I don't really want current versions of Windows or Linux on, those are way too big. Even "lite" versions of current OSes I've looked at are very big, they have lots of configurations, lots of places to have to hunt down files, you don't know how well it will go with your hardware, and with new devices we are putting new OSes on new hardware a lot. DOS is just so much simpler. If you had something like a x86/x64/arm compatible DOS that had some niceties like NTFS support, TCP support, multiple TTYs, virtual memory addresses to access hardware so say all video starts at 0xA000 like DOS on PCs and audio on 0x220/0x388 and so on that's just an example from DOS PCs but with PEEK/POKE support it would be way nicer.
  7. Since we're talking about Ubuntu here, I set up Ubuntu 64-bit today on a NUC i5. The apt packages for cc65 were not recognizing cx16 as a system so I downloaded sources from github and it works now. I was able to compile Matt Heffernan's demos, and the tiles demo works fine in the X16 emulator at 60fps. However, lesson 17 the YM2151 demo outputs no sound. Lesson 13 PIANO.PRG and PSG.PRG the VERA PSG sounds do work though. This isn't an issue on my Windows 10 laptop only on Linux. It did the same on me last time I tried to run on a RPi4, PSG would work but not YM2151. It was also slow with the tiles demo on a RPi4B it looked like. If I try to run x16emu with sudo it starts complaining about can't open ALSA no such file or directory so I just run as a normal user. Anyone get YM2151 working on Linux X16 emulator and have some ideas?
  8. Hah, believe it or not I've modded setups for Renegade, oBV/2, Impulse, Iniquity, and Mystic BBS, but never got a chance to set up a PCBoard setup, although I did help someone with some testing on a board that ran PCB. So, PCB it is this go round. My RPi4B is back to being a paperweight for right now, it took 2 days to copy what should be about 350GB from a M.2 Sata SSD to a backup USB 3.0 4TB, but exFat I guess was set up by the manufacturer with big cluster sizes because it wants to report half of the disk space is gone. Plus the case fan was way noisy compared to my i5 NUC and also bright so I'll have to fix those things. Originally my RPi4B was going to be an emulation machine, but it does good only up through about PSP level, doesn't do quite 60fps for X16 unless maybe you overclock it, which, I don't hate my machines, so I try to take care of them... then it was going to be an OTG HID keyboard/mouse, but ConfigFS doesn't work quite so well on some hardware devices I use... then it was going to be a NAS, but, that didn't turn out so well. Maybe it could just be a BBS I don't know, but it seems like it wants to be more, I just don't know what exactly. I've got Ubuntu running on the Intel NUC i5 and it's working as good as Linux works anyway, given all the configurations I have to do, but I've got RetroPie set up on it, although it isn't showing Dosbox in EmulationStation. It runs Matt Heffernan's tile demo fine, but it's having sound issues on the YM2151 music, it's some kind of pulseaudio/alsa configurtion muckery that you have to mess with on Linux systems I guess. Probably would have made more sense to put Windows on it, but I want something more lightweight for it than Windows 10. It would be neat for there to be a version of DOS with PEEK/POKE like the C64 that is also 64-bit with ARM support, has NTFS, has TCP and utilities, has some of the things of Linux like multiple ttys, but is a lot more like DOS. I checked out FreeDOS but it doesn't do all the things.
  9. Good point on microSD/flash speeds. I’ve got a 3B+ that I put a Bind DNS and Dhcpd server on. I put a 4TB USB 3.0 backup on the 4B for a NAS. I’m copying over my 860 Evo 1TB to it right now so I can reformat the Evo and then put it on my Intel NUC i5 since it has PCIe. I’ll probably use the NUC for the X16 emu on that TV since it wasn’t quite 60fps on the 4B. Have an extra 3B that I wanted to use for a NAS but it’s only USB 2.0 I think. The X16 emu was really the deciding factor b/c I want to develop on the laptop and send to the TV seamlessly. Having big video issues with the 4B though on that 65” 4K it wants to display with a font that you have to squint to read with glasses on. I set hdmi_group and mode in config.txt to boot 720p and it boots fine but then goes to 2160p after a few seconds during boot before it goes to emulationstation. I was also thinking I could maybe set up the 4B maybe for a telnet/SSH BBS with Tradewars 2002 and other door games. I’ve got Dosbox set up on it and could put oBV/2 or PCBoard on it. I had DOS as a teenager I was an Ansi artist way back when and just now getting into Commodore and X16 don’t know what was good for BBS software on the C64.
  10. I ended up getting the Acrylic Set-top Box Kit for RPi4 tonight over at Microcenter, and it seems like the best option for me. It comes in at about the size of my Intel NUCs. I haven't tested the OTG yet but it looks like it does split out into a USB-C power and gives another USB female connector, it's not tapping into the 5V pins like the Argon did, which took away OTG capability for me. I'll try it out soon and see if I can still use it to emulate a keyboard/mouse to another device from the enclosure. Also I got a separate USB-C M.2 enclosure that does M.2 SATA and NVMe as I have two older SATA M.2s I haven't been able to read with my NVMe enclosure. Am I right in what I've seen from pictures that the Argon M.2 is basically a USB to USB bridge that will bottleneck to USB 3.1 speeds?
  11. I found an interesting little relic tonight I found the 2.10 version of oBlivion/2 for DOS that's got a scrolly on the right side for the Waiting for Call screen on some site that had some old OS/2 BBS files and things. Years ago I was talking to someone about oBV/2 they said they lost the code b/c it was put in an encrypted zip and they lost the password, but the EXE is still around it's about 181k. I got it somewhat working in Dosbox with some fiddling. Just including a screenshot here b/c it's neat-o. They had some interesting things like using an Ansi for part of the screen as a "menu" and another Ansi as a "prompt."
  12. I have a few YM2151s here at home for a synth project, because some "Buy It Now" auctions on eBay sell them in a reel and I figured if I mess up I might as well have some extras, but I haven't bought some YM3012 DACs for them yet. The Sharp X68000 in Japan used a YM2151 but it wasn't release here in the U.S. It had lots of ports too from Capcom and Sega arcade titles that used the YM2151. Lots of neat things you can do in FM synthesis but can't do on a simple pulse/saw/triangle channel.
  13. I have to ask what are the downsides on that one that prompted you to get an Argon case, or was it just that you wanted M.2? It would be really nice to be able to have the cooler tower with copper heat sinks and the M.2 at the same time with a case enclosure around that has good airflow.
  14. This is really neat. I was just wondering what you might do though if you wanted to make the real game or a game like it, and you need Sonic to jump on a trampoline. Wouldn't that mean updating your IRQ table on every frame then, and skipping values that are temporarily off-screen? I was also wondering how vertical parallax might be accomplished.
  15. I've got one of the non-M.2 ones and on my RPi4/8GB and the fan that came with mine is very noisy. It's not *quite* as noisy as a NUC7i7BNH I've got laying around here with a mini leaf blower fan that sounds like the little jet engine that couldn't at 3am if you keep it on automatic fan control, but it's still noticeably noisy. The rest of this doesn't really apply mostly unless you're doing IoT things perhaps but I was also trying to make it work as a USB-C OTG HID keyboard/mouse through ConfigFS and it wouldn't work because the USB-C is actually going through the 5V pins and so I found that you have to take it out of the case whenever you need to do OTG, also I can't get to the display/camera ribbon cable ports on mine. So, because of the OTG issue I leave my case unscrewed and that's not good for the microSD because the plastic goes above and under the card and wants to try to bend the microSD card and break it if you're not careful. I do like the metal of the case though and the label sticker for the GPIO pins. I was thinking of possibly trying out one of those RGB cooler towers but I've got it in my bedroom here hooked to the TV so I don't need lights keeping me up all night. I was also thinking about designing up a case at some point, roomy with a quiet fan hopefully.
  16. Share the name of it so that anyone reading the thread can make one. If you're going to release it as a software you maybe want some things like a Waiting for Call screen and various intro screens maybe even an intro screen randomizer.
  17. I'm talking a case that's totally separate of anything to do with the X16, totally new mold, just in somewhat of a similar kind of style but a new and different design. I'm only mentioning that because if I go to a retailer like my local Microcenter and look at the selection of Raspberry Pi boards they have, it's not all that impressive of a selection when it comes to cases. They all seem to have a tendency to check a few boxes and then leave out some important things. So if the X16 prototype is a microATX form factor can't you just pick up any old regular microATX case from a Microcenter or Amazon or wherever then? If it's a kit that comes as a maker board kind of like the PE6502 probably anyone who solders parts together is going to just want to buy their own microATX case anyway is my guess. If that's all true, it just doesn't seem like that big of a deal then. Maybe not 99%, but I'm in that 1%, and I think that number is going to grow because you can get away with doing BASIC at first but eventually you might want to do some more performant things in ASM. Totally agree on reusing the debugger as a UART or I2C. Here's a question, does the x16e have to be the same software-wise as the X16p? You mentioned in an earlier comment the need to move to a better board for the X16e than the existing VERA. So for those of us in the crowd of wanting things like more VRAM, maybe have a X16p compatibility mode, but also allow us to have X16e specific games and apps utilizing whatever features come from a VERA 2.0 you might call it. If you had enough VRAM for a 640x480x256 bitmap, so 307,200 bytes, you would have enough for 4 screens of 320x240x256 hardware scrolling, maybe even more VRAM for more layers for parallax scrolling and/or more sprites. Sounds like it would better complement other features like the YM2151 and SNES controller ports, considering all of what the SNES PPU offered, which is even more than that with features like scaling and rotation. Then you would basically have the lower end (C64-ish X8), the middle (TG-16-ish X16p?), and the high end (Amiga/SNES/X68000-ish X16e?). That seems like a winner to me.
  18. TL;DR: I'm new here and catching up on things, but wanted to share some preliminary thoughts in different areas in detail. Mostly about the cases, the X8, and the VERA. Perifractic should make a case for the Raspberry Pis that's like the X16 case and has space for a decent fan like those RGB cooler tower ones. I definitely want a few. I've got one of these Argon AR2 cases for my RPi4B/8GB that has a noisy little tiny fan that doesn't cool much, and I'm just not so happy with the case design-wise for various reasons. Here's the thing. It hides your CSI ports. It hides your USB-C OTG port by going through the 5V and then through a non-OTG USB-C port so you lose data capability if you wanted to emulate a USB device through the USB-C port. So it then tempts you to leave your case unscrewed, and if you do, the way it's designed it wants very badly to bend your microSD if you just wiggled the bottom of the case just a tad, a little dab'll do ya, and if you do that, well, you could be looking at a potential fire hazard too because I found out one time on a RPi3B with an accidentally bent card it can heat up the unit very fast. I've got another NUC7i7BNH that has the little leaf blower fan that couldn't, that leaves the case hot, and it's noisy and might scare children and adults when it changes fan levels automatically at 3am, it sounds like a failing small jet engine. I took it out of the case, then found that the only alternative option for sale was a fan-less case, which is not something I care to do. So I'm just simply saying, there's market potential here for better cases, and I rather liked the X16 case design. I'm trying to like the X8, but don't know a whole lot about it, and how it differentiates itself from the C64 Mini. I've got one of those here too. If you start saying Raspberry Pi-sized FPGA, I start thinking IoT. The C64 Mini I found is not so good on the USB drivers. I finally got my Raspberry Pi Zero W to work with it as a USB boot protocol keyboard HID on the C64 Mini with some work, but the C64 Mini still doesn't work with my Arduino Nano 33 IoT with basically the same boot keyboard HID descriptor, it's a fiddly mess. I might get around that by changing the VID/PID, but I don't know what that's going to do yet in the Arduino IDE, as in screwing things up to reprogram it later. The more IoT-friendly the X8 gets the better. I start thinking IoT though and some words suddenly come to mind like UART/I2C/SPI, GPIO pins, Analog pins, PWM pins, 3.3V or 5V... I don't know what's all on the X8. I can see that there are folks adamantly commenting in here that want things cut for cost to hit their ideal price point. The question then becomes, what is your ideal price point, and what can you do with it if you cut down cost too much, will you be able to do what you want to do with it? I'd like to know from those who want the X8 to be at a very low price point what that price point is and what they want to do with it. Make sure to test for feasibility, that's why that emulator is there. It maybe needs an update with an X8 mode for testing. I was personally drawn to the X16 because of the YM2151+PSG and early on it sounded like it was going to have a 65C816, but I know today that's not the case. It all sounded kind of like a Sharp X68000 but in the U.S., which sounded way cool. I'm very much into some of the 16-bit era gaming console things like FM synthesis, graphical effects of the SNES like scaling and rotation, multi-layer parallax scrolling, and so on. The X16 was checking maybe not 100% of my check marks at first, but enough that it got my interest. When I got into 65C02 ASM on the X16 I realized that on the X16 even though there was a 640x480x256 you couldn't do a full screen bitmap because that's 307,200 bytes. You could do that at 320x240x256 as that's 76,800 bytes, but now if you move the goalpost on VRAM to 65,536 bytes, now you suddenly can't do that again. You'd have to either scale down to 160x120x256, or use tiled mode afaik. Tile mode is fine if you have enough repeating sections of a screen. If you wanted to do text in a graphics mode, and had a 256-character font set, at 8x8x8bpp that's 16kb, and at 16x16x8bpp that's 64kb already. If the VRAM could go up to 76,800 bytes on the X8 and the RAM lowered to 54,272 bytes, or if that's somehow user configurable, which I would be surprised to see, that would be better in my opinion, because on the X8 you have faster file system I/O just from having microSD. So, the 64kb VRAM on the X8 is a squeeze, and for some of the things I would want to do, that sounds like trying to squeeze a big orange through a small straw, and I want a bigger straw. Send me an X16 FPGA. Should the X16 still be called the X16 since it's on a 65C02 as is? I remember those early 90s 16-bit console wars, I had a TG-16 back then and a neighbor of mine had a Genesis, and on the bus to school I'd have to hear, "well your TG-16 isn't a real 16-bit because it's an 8-bit processor with 2 16-bit graphics processors it doesn't have Toe Jam n' Earl in your face Blast Processing." Pepperidge Farm remembers. Later I got a Genesis and a SNES, the SNES was the best tech specs-wise and had some very good games. The TG-16 had a few good games too btw, and it at least had 8bpp color unlike the Genesis, but not that Mode 7 scaling and rotation from the SNES, or its SuperFX chip too from "muh-muh-muh jammen" Starfox, because according to Falco every English sentence is pronounced "muh-muh-muh jammen", anyway put that on a higher end VERA for a real X16, then sell it as a lower cost alternative to the Gameduino 3X Dazzler for breadboarding projects if that's feasible. Something that works with 65C02, 65C816, and 68000 chips for breadboarding projects perhaps, I'm not sure how feasible that is. I think that both the through-hole kit and FPGA should be released. After all the Commodore had the Pet, the VIC-20, the C64, the Amiga...
  19. It was very accurate on some things like preserving DOS aspect ratio, shaded characters in ASCII codes 176-178, and such, so much so that it was hard to tell in plenty of cases whether a work was done by hand or a conversion, which, is basically what it's supposed to do. I had some ideas around that time that I wanted to make an actual paint program that renders on the fly to Ansi. I also thought it might be good for producing text-based images with small file sizes for tiny displays like on TFTs for Arduinos. I had at one point made an Ansi touch screen interface on a small Arduino Micro, which was kind of interesting. Also, consider you might have a whole set of artwork that tells some kind of story but you want it told in a different art medium like Ansi, that's very difficult to do it pixel by pixel for whole sets of images. There were basically some people screaming witchcraft, some outright indignant with me, and some others saying well if you have art competitions where money and prizes are given how do you keep people from cheating on them? My thought on that is you could make the conversion a back-end service to some secure website, rather than some app you download or some front-end JS, and have someone look at the logs of all conversions. That would be tedious of course if a whole bunch of people used it.
  20. I ran Renegade and Oblivion/2 during the dial-up era and was a beta tester at one point for Iniquity BBS. Later I ran Mystic BBS over telnet. I used to call a few boards that had PCBoard on them too. I made ANSI art on occasion for boards and helped other SysOps with modifications to their boards and door games. Way later I built an Image2Ansi converter as sort of an academic math experiment that worked so well it made some people very upset, so I scrapped it, but I think maybe there's a place for it possibly as an Image2PETSCII app for the X16 perhaps.
  21. I used to know someone back in the 90s when I was a BBS SysOp who lived over in Oak Cliff. I'm closer to Fort Worth and go out to Dallas for computing meetups, I used to work as a web developer out in Dallas too.
  22. Hello! My name's John I've been following the X16 for a bit and lately I've been getting into 65C02 ASM and figuring out things on the VERA. If you're in the DFW area I've been out to Dallas Society of Play gamedev meetups and other DFW computing groups. I was an 80s kid and grew up with the TI-99/4A, Atari 2600, NES, Sega Master System, TurboGrafx-16, Sega Genesis, and SNES. I knew someone down the street growing up who had a Commodore 64 so I have some familiarity with it. We got our first MS-DOS PC back in 92 on a 486sx/25 (it was a Packard Bell Legend series). I got into programming in Turbo Pascal/Turbo C/Turbo ASM in high school later in the 90s. My first job as a web developer was in 97 for a local ISP. I was also a local dial-up BBS SysOp around that time too. In the early 2000s I got into C#/.NET and a good portion of my career after college has been building websites and internal apps for companies in .NET, PHP, and other languages. I've been working on several things in C++ lately, ranging from image and audio-related libraries as well as compression-related libraries, a NES emulator and other systems with my own 6502 implementation, and a VNC-like protocol that lets you use a Surface Pro 7 pen on another PC as an attachment kind of like a Wacom Cintiq over TCP/IP via KMDF virtual USB HID drivers. The YM2151 was a big draw for me in getting into the X16 as I have a few of them here that I got a while back wanting to make a synth. Releasing FM synth music on the YM2151 to a larger software community would be very cool.
  23. john_e79


    Reminds me more of Gyruss on the Atari 2600 than Galaxian, which is a good game btw.
  • Create New...

Important Information

Please review our Terms of Use