Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


john_e79 last won the day on November 2 2021

john_e79 had the most liked content!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

john_e79's Achievements


Apprentice (3/14)

Collaborator Rare Reacting Well Dedicated First Post Week One Done

Recent Badges



  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.
  • Create New...

Important Information

Please review our Terms of Use