Jump to content
IGNORED

FPGA Based Videogame System


kevtris

Interest in an FPGA Videogame System  

682 members have voted

  1. 1. I would pay....

  2. 2. I Would Like Support for...

  3. 3. Games Should Run From...

    • SD Card / USB Memory Sticks
    • Original Cartridges
    • Hopes and Dreams
  4. 4. The Video Inteface Should be...


  • Please sign in to vote in this poll.

Recommended Posts

It's that time again: New Firmware Friday! This time, I have added the Atari 2600 core. It is a very full featured core, able to run nearly anything.

 

...

Oh yeah, I fixed a couple bugs in the NES core, too. Specifically mapper 163 so that pokemon yellow game now appears to be fully playable, and the pitch sweeps which should fix that test rom and punch out SFX.

 

Nice, thanks!

 

Really hoping for 7800 soon! :)

Link to comment
Share on other sites

TASbot should work on the AVS in theory, if you set the menu to automatically load the game on power on. This could also be used to cheat on Scoreboard. And this goes without saying, but please don't submit scores if you decide to run a TASbot. I bought an Arduino and some parts a long time ago to build a TASbot, never got around to it.

 

"Low Pass" filtering actually means high frequencies get cut. "high pass" filtering is where the low end of the audio is removed. Actually the NES triangle is capable of creating quite low notes, quite effective for "bass guitar" effects in chiptune carts. My AV Famicom has ever so slightly weaker bass output than the NES toaster, but other than that, the audio is nearly flawless and noise free. I wanted to modify the "high pass" filter on my AV Famicom with a larger electrolytic cap, but am unsure of which component on the PCB needs replacing.

Yeah I think it should work on the AVS. Was hoping to try it out on the NT Mini mostly because I think it'd make a good case to the speedrunning community since the NT Mini can also run at the original refresh rate in analog mode!

 

Didn't know AV Famicoms have a high pass filter, interesting.

  • Like 1
Link to comment
Share on other sites

 

Well, maybe I will ask a few audio related questions too. :)

 

1) Nt mini generates 48khz 16bit audio, so I guess this results in crisper sound and that's cool... But maybe original lower quality NES audio has some nostalgic value as well. Err... something like cd vs vinyl? I love how you recreated the NES composite signal with all the artifacts, is something similar possible for audio, i.e. recreation without all this digital crispness, or are there some technical limitations connected with the analog nature of the audio signal? Original quality audio seems like a nice (optional!!!) feature.

 

2) If the Famicom "has some lowpass filtering" maybe it could be implemented for expansion audio in your NES core as well (at least optionally), since the expansion audio was originally present on the Famicom and not the NES. :P

 

3) Kevtris, how do you check your FPGA implementation against original audio? A simple ear test or do you look at some signals (or maybe both)?

 

4) Some time ago you talked about problems with implementing "external analog hardware" for your C64 core. Could you explain this in more detail? I don't know much about the Commodore... :grin:

 

Keep in mind that it's generating 48Khz 16bit audio on the output side for HDMI spec. On a real NES, it's mixing 4 digital channels of undefined "sampling rates" that are generated digitally and goes into multiple filters (two high pass filters and one low pass filter). (Also why when software emulators artificially limit themselves to 22khz or 32khz, it acts as a high-pass filter.)

 

To create all the analog artifacts comes back to the same reason why scanlines are a taste thing and shouldn't be enabled by default. The equivalent of "scanlines" for audio to make it sound like an old TV would mean applying additional low-pass filters, noise and normalizing the audio to make it louder, hence many of the trademark distortion noises of 8-bit systems. The NT Mini produces "too clean" output so distorting the video with scanlines and distorting the audio makes it less clean. Some people want it, other people don't like it.

 

My personal opinion is that the only thing ever wrong with digital audio output is that the sound chips on PC motherboards tend to have too much noise, and many cheap devices *cough*Raspberry Pi*cough* have the same problem. If you use a dedicated sound card, or a high-end motherboard on a PC, (the trend 3 years ago on gaming motherboards was to have replaceable op-amps) you usually get a better experience by just connecting a home theater to the S/PDIF and thus have more control over the audio equalizer. I imagine most people who play games on their TV, connect the HDMI to to the TV to reduce latency and instead route the audio from the TV to the home theater if they have one. If you have a subwoofer, then it already has a high-pass filter on that channel, while the regular speakers have low-pass filters on them to prevent them from being damaged.

 

That's how things have changed since the 80's. Prior to the 90's people only had "HiFi Stereo" systems which often included large speakers with crossovers in them to send the frequencies to better-suited speakers in the same cabinet. Around the late 90's we switched to subwoofer on a low pass filter, and small 5 speaker surround systems.

 

So I don't know to what extent you want to create analog distortions but as one earlier video showed, the audio was essentially identical but which frequencies were louder than others was different. That can be chalked up to sampling rate of the capture just as easily as it can be chalked up to signal attenuation.

  • Like 1
Link to comment
Share on other sites

 

Keep in mind that it's generating 48Khz 16bit audio on the output side for HDMI spec. On a real NES, it's mixing 4 digital channels of undefined "sampling rates" that are generated digitally and goes into multiple filters (two high pass filters and one low pass filter). (Also why when software emulators artificially limit themselves to 22khz or 32khz, it acts as a high-pass filter.)

 

To create all the analog artifacts comes back to the same reason why scanlines are a taste thing and shouldn't be enabled by default. The equivalent of "scanlines" for audio to make it sound like an old TV would mean applying additional low-pass filters, noise and normalizing the audio to make it louder, hence many of the trademark distortion noises of 8-bit systems. The NT Mini produces "too clean" output so distorting the video with scanlines and distorting the audio makes it less clean. Some people want it, other people don't like it.

 

My personal opinion is that the only thing ever wrong with digital audio output is that the sound chips on PC motherboards tend to have too much noise, and many cheap devices *cough*Raspberry Pi*cough* have the same problem. If you use a dedicated sound card, or a high-end motherboard on a PC, (the trend 3 years ago on gaming motherboards was to have replaceable op-amps) you usually get a better experience by just connecting a home theater to the S/PDIF and thus have more control over the audio equalizer. I imagine most people who play games on their TV, connect the HDMI to to the TV to reduce latency and instead route the audio from the TV to the home theater if they have one. If you have a subwoofer, then it already has a high-pass filter on that channel, while the regular speakers have low-pass filters on them to prevent them from being damaged.

 

That's how things have changed since the 80's. Prior to the 90's people only had "HiFi Stereo" systems which often included large speakers with crossovers in them to send the frequencies to better-suited speakers in the same cabinet. Around the late 90's we switched to subwoofer on a low pass filter, and small 5 speaker surround systems.

 

So I don't know to what extent you want to create analog distortions but as one earlier video showed, the audio was essentially identical but which frequencies were louder than others was different. That can be chalked up to sampling rate of the capture just as easily as it can be chalked up to signal attenuation.

Since the FPGA mostly simulates a digital device, how difficult is it to accurately simulate analog components such as resistor networks, high/low pass filters, harmonic oscillators, etc? Most game consoles merely used resistor ladders to internally bridge multiple outputs on a CPU into discrete logic levels for analog output, and also used duty cycling and other trickery. Duty cycles and pure resistor networks would be easy enough to implement. HF noise can cause real issues with a DAC chip creating all sorts of harmonics if digitally sampled without a low pass filter at half the sample rate or less. Most consoles suppress HF noise in the ultrasonic range. HiFi stereo equipment do this typically with a 20-20,000 Hz bandpass on inputs but consoles are a wild wild west sort of thing.

  • Like 1
Link to comment
Share on other sites

Been Using my SPC30 8bitdo controller instead, and the up works way better than the NES30. Thanks for the recommendation!

 

 

The issue I'm having is more of a loss of BT connectivity.. I'm wondering if others are having these issues too. Since it happens on both the SPC30 and the NES30 I'm thinking that the issue is with the BT receiver connected to the NT-mini. Im going to see if its a voltage issue from the NT-mini by powering the thing with the USB cable, but I was wondering if any of you have updated the device, and saw improvements ?

Mine dropped during a round of Contra once. Men just ran right cascading to their doom until the controller resynced. I think I lost about twelve men (I used Konami Code). Also I find the FC30 far more comfortable than NES30.

Link to comment
Share on other sites

Mine dropped during a round of Contra once. Men just ran right cascading to their doom until the controller resynced. I think I lost about twelve men (I used Konami Code). Also I find the FC30 far more comfortable than NES30.

I drastically prefer wired controllers. No synch issues, no batteries to die, so many fewer problems.

Link to comment
Share on other sites

Since the FPGA mostly simulates a digital device, how difficult is it to accurately simulate analog components such as resistor networks, high/low pass filters, harmonic oscillators, etc? Most game consoles merely used resistor ladders to internally bridge multiple outputs on a CPU into discrete logic levels for analog output, and also used duty cycling and other trickery. Duty cycles and pure resistor networks would be easy enough to implement. HF noise can cause real issues with a DAC chip creating all sorts of harmonics if digitally sampled without a low pass filter at half the sample rate or less. Most consoles suppress HF noise in the ultrasonic range. HiFi stereo equipment do this typically with a 20-20,000 Hz bandpass on inputs but consoles are a wild wild west sort of thing.

 

Any Console or Computer that uses a FM Synthesis (eg Yamaha YM3812 found in the Adlib, SoundBlaster) actually produces frequencies that can't be captured with 48Khz. The SN76489 (Sega Master System, Coleco, PcJr/Tandy 1000) can generate frequencies that are well outside human hearing (eg 111Khz.) So yeah, audio is a bit more of a crapshoot to get perfect because the original audio generation wasn't perfect.

  • Like 1
Link to comment
Share on other sites

@kevtris. I want the z3k to be a premier high-class product. No compromises. If it takes a year or two more + another couplahunnertbux for premium spec parts I'm all for it. It's easy to save the cost of a few designer lattes during the week. So everyone, start saving!

I want the Z3K to be of such high quality that all my other retro consoles want to have sex with it.

  • Like 3
Link to comment
Share on other sites

I want the Z3K to be of such high quality that all my other retro consoles want to have sex with it.

Yea, if it can't support the Dreamcast, Gamecube, Wii, Xbox, or Ps2 I really hope it could support up to the Saturn, n64, and psx. That would still be 5 more consoles I would need to keep around and have modded for hdmi and odes (or jailbreak to run backups in the case of ps2, wii, and xbox) but I could live with that. I just don't want to have thousands of dollars in modded consoles lying around if I can have a 99.9% accurate all in one with native hdmi and the ability to read backups. But for the love of god support reading from an external harddrive or 1tb sd cards something.

Link to comment
Share on other sites

 

Keep in mind that it's generating 48Khz 16bit audio on the output side for HDMI spec. On a real NES, it's mixing 4 digital channels of undefined "sampling rates" that are generated digitally and goes into multiple filters (two high pass filters and one low pass filter). (Also why when software emulators artificially limit themselves to 22khz or 32khz, it acts as a high-pass filter.)

 

To create all the analog artifacts comes back to the same reason why scanlines are a taste thing and shouldn't be enabled by default. The equivalent of "scanlines" for audio to make it sound like an old TV would mean applying additional low-pass filters, noise and normalizing the audio to make it louder, hence many of the trademark distortion noises of 8-bit systems. The NT Mini produces "too clean" output so distorting the video with scanlines and distorting the audio makes it less clean. Some people want it, other people don't like it.

 

[...]

To be honest, I wasn't referring to HDMI here (mainly). In the Nt mini specs you can find that 48khz 16 bit audio is generated for the analog output as well, so this is what I'm wondering about. An optional old TV audio filter would be nice, but I'm actually considering hooking up the Nt mini/Z3K to a real old TV via composite/RF. :) Let's not forget that the Nt mini/Z3K is also very interesting to people that don't want to use HDMI -- I stopped using emulators years ago so that I could enjoy raw, dirty composite picture again.

 

Regarding hooking up the Nt mini/Z3K to an old TV, there was also this really interesting question by Great Hierophant that kevtris probably did not notice:

 

"If or when the cores for the Atari 2600, 5200, 7800, Odyssey2, Intellivision and Colecovision are released, how will their analog lo-fi color signals be processed? The NES generates composite color inside the chip, not RGB and the Nt Mini outputs the exact same composite signal that the real NES does. From what I can tell, the Atari consoles and the Intellivision also generate color in the composite domain. The Odyssey2 and Colecovision seem to generate color in the RGB or YPrPb domain."

  • Like 1
Link to comment
Share on other sites

Yea, if it can't support the Dreamcast, Gamecube, Wii, Xbox, or Ps2 I really hope it could support up to the Saturn, n64, and psx. That would still be 5 more consoles I would need to keep around and have modded for hdmi and odes (or jailbreak to run backups in the case of ps2, wii, and xbox) but I could live with that. I just don't want to have thousands of dollars in modded consoles lying around if I can have a 99.9% accurate all in one with native hdmi and the ability to read backups. But for the love of god support reading from an external harddrive or 1tb sd cards something.

You keep on bringing up more advanced HW and although we all do hope I believe we should be more realistic here, even adding 2Y to development.

 

At present there's no FPGA core for any of those, even more we do not have yet complete cores for MD/Genny or SNES, please anyone correct me if I'm wrong (the MD core for MiST is still in development, not sure if there are more advanced ones).

 

To add to that Kevtris hasn't even started any of the 16bits core development (afaik, to be fair I don't know for sure) and I am afraid it will be somewhat complex (given the lack of known fully working cores), I am faithful he can pull it off (the 16bits cores I mean) but the 32/64 bits it's way far ahead .... I believe we still don't have a complete LLE for N64, no complete SW emu for Saturn either etc...etc... I also think those 32/64bits have been emulated/compromised at higher level (for sure nothing that translates well to FPGA or can be used as a guiding reference) just to cover as many games as possible rather than circuit level accuracy. I also wouldn't be surprised if much more LEs (i.e.: bigger FPGA) are required to even think of those.

 

Again, hope is good, but I also HOPE that the Z3K wouldn't come out in Y3K (I believe kevtris would eventually make himself immortal by injecting his own consciousness in one of his FPGA ;-) ).

  • Like 2
Link to comment
Share on other sites

Yea, if it can't support the Dreamcast, Gamecube, Wii, Xbox, or Ps2 I really hope it could support up to the Saturn, n64, and psx. That would still be 5 more consoles I would need to keep around and have modded for hdmi and odes (or jailbreak to run backups in the case of ps2, wii, and xbox) but I could live with that. I just don't want to have thousands of dollars in modded consoles lying around if I can have a 99.9% accurate all in one with native hdmi and the ability to read backups. But for the love of god support reading from an external harddrive or 1tb sd cards something.

 

I think most of us are just one house/apartment/flood fire aware from having no collection. My personal feelings on piracy tends to be pushed aside when it comes to preservation of software I've purchased (sometimes multiple times.) Preservation takes precedence, so if I can save the games from being lost permanently by using something like the Z3K or NT Mini in place of using the original console or computer, the original console gets to live longer (unless they're timebombs like the SNES, then nothing you can do can save them.)

 

For example, Larry Bundy JR, 3 of the first 4 videos on his youtube channel are detailing how his video game collection was destroyed by the storage container's roof leaking

 

It's not likely the Z3K will be able to use an external hard drive or sd card over 64GB because FAT32 maxes out at 64GB. In order to use more space you have to use a more complicated file system, and you will not be able to read in anything else. For example my 1TB external plugged into the WiiU, the WiiU had to format the drive first ( http://en-americas-support.nintendo.com/app/answers/detail/a_id/1359Nintendo says 2TB max) If I want to backup the external drive, I'd still need the same WiiU, so if that WiiU dies, and no more WiiU's are available, those games are essentially lost. However there is another issue here, and that's you have to use GPT partition tables to access more than 2TB.

 

I expect, at least until there are affordable 2TB SDD's, that the Hard drive manufacturers will continue to produce 2TB drives because there are plenty of legacy servers out there that would also have the same problem.

 

In the case of the z3K, the quickest solution is to just divide the drive into 64GB partitions (1TB = 16 x 64GB,) but that will make it a pain in the ass to manage. The file systems (eg UFS (FreeBSD), NTFS (Windows), HFS+ or APFS (Mac/iOS)) are too complicated to implement on a FPGA due to the need for large amounts of memory and journaling. Only FAT12/16/32 is friendly in this respect because the file system is simple, but it's also not very reliable (you can trash a cheap USB drive from power-cycling what it's plugged into.) exFAT is basically perfect for Flash media, but due to patents, you can't support it without a license.

 

I suppose in a pinch UDF would work. UDF is what's used on DVD and Blueray discs, so it's not likely any patent encumbered, however writing to those on computers might be complicated. But reading should be no problem. However it's even worse for reliability since no drive maintenance tools that I'm aware of support UDF. Though I also suppose the Z3K can format a drive with UDF that Windows/Linux/MacOS/etc can read and write to, and if worse comes to worse the Z3K could just build all the dumping into the firmware.

Edited by Kismet
Link to comment
Share on other sites

 

I think most of us are just one house/apartment/flood fire aware from having no collection. My personal feelings on piracy tends to be pushed aside when it comes to preservation of software I've purchased (sometimes multiple times.) Preservation takes precedence, so if I can save the games from being lost permanently by using something like the Z3K or NT Mini in place of using the original console or computer, the original console gets to live longer (unless they're timebombs like the SNES, then nothing you can do can save them.)

 

Might have been sleeping during that piece of news, care to elaborate?

  • Like 1
Link to comment
Share on other sites

Might have been sleeping during that piece of news, care to elaborate?

Personal experience. In 2000 I put my SNES in it's original packaging, and it was moved to a new house, and by the time I pulled it out of storage 2 years or so later, power LED comes up, nothing else. My sister bought one from a pawn shop, it quit working sometime while she was away at University and thus it just stuck her bedroom until she moved out of the parents house. I bought one from the local game place here, dead on arrival. I bought a SFC and a SNES off eBay, the GPM-02 works, the SFC initially worked but then stopped working sometime between testing it and getting a SFC cartridge to test. All of these except the GPM-02 are SHVC-CPU-01 systems, and the SFC is a 1/1/1, while the rest are 2/1/3's. So I have one working SNES, 2 non-working SNES, 1 probably-just-dirty SFC, and the remains of the original SNES I had's PCB. If you look on eBay, you'll frequently find lots of dozens of "as-is" lots of SNES systems.

 

So yeah, they're timebombs, information found online suggests it's always the CPU. That said, the ones people seek out are the 1-chip models which have more bugs than GPM-02 (identical to SHVC-CPU-01 just the APU chips are on the PCB instead of it's own shielded box) but apparently have the best RGB output.

Edited by Kismet
  • Like 1
Link to comment
Share on other sites

I think he is referring to the SNES lifespan being pretty low in comparison to other consoles. The black screen of death will occur on any SNES pretty much without warning. Usually it's a chip that has gone bad. My guess is that it's caused by bad capacitors not properly releasing the energy in a slower, calmer manner... and thus adding stress to components when turned on and off. Once a chip is fried, the only way to fix it is replace with another chip.

 

To stop your SNES from becoming a ticking time bomb it's a good idea to do a complete capacitor replacement before frying your chips.

Link to comment
Share on other sites

I think he is referring to the SNES lifespan being pretty low in comparison to other consoles. The black screen of death will occur on any SNES pretty much without warning. Usually it's a chip that has gone bad. My guess is that it's caused by bad capacitors not properly releasing the energy in a slower, calmer manner... and thus adding stress to components when turned on and off. Once a chip is fried, the only way to fix it is replace with another chip.

 

To stop your SNES from becoming a ticking time bomb it's a good idea to do a complete capacitor replacement before frying your chips.

I have a SNES Jr and there are not that many capacitors to begin with and it seems fine so far, so told electronics does go bad and usually fails without notice.

I wasn't aware of the SNES having a particularly higher death rate than any other console.

To be fair many older systems were built like tanks still finicky though, I guess the issue with SNES is that finding the custom chips is hard, older consoles may be easier to fix if they used many off-the-shelf components (CV for example, the triple-powered VRAM [+12,+5V,-5V] almost always fails on its own but it is easy enough to replace with 5V only chips .... I have one having been in store for 10Y, it was put in store in perfect working order but that's not how it came out, there was no rust, rot, leak or anything like that on the motherboard but the VRAM broke anyway, but not the SRAM :) ).

Link to comment
Share on other sites

I have a SNES Jr and there are not that many capacitors to begin and it seems fine, so told electronics does go bad and usually without notice. I wasn't aware of the SNES having a higher death rate than any other console, to be fair many older systems were built like tanks still finicky though, I guess the issue with SNES is that finding the custom chips is hard, older consoles may be easier to fix if they used many off-the-shelf components (CV for example, the triple-powered VRAM [+12,+5V,-5V] almost always fails on its own but it is easy enough to replace with 5V only chips .... I have one having been in store for 10Y, it was put in store in perfect working order but that's not how it came out, there was no rust, rot, leak or anything like that on the motherboard but the VRAM broke anyway, but not the SRAM :) ).

 

The Snes Jr is typically the 1-chip model. If you look around online, you'll find that SNES systems have been failing like a plague hit them ever since 2012. So I'm really looking forward to seeing a FPGA SNES at some point, regardless of who does it.

Link to comment
Share on other sites

Regarding the My Life in Gaming video :

 

https://youtu.be/uMwBxL5ZlGw?t=358- 5:58 - The FDSStick issue is weird one and I think it is more likely that their FDS RAM Adapter is failing or the pins are dirty. Once the FDSStick does its loading thing, it essentially lies dormant.

 

https://youtu.be/uMwBxL5ZlGw?t=1290- 21:30 - Their example here does not really show any substantial sound distinction between the real NES and the Nt mini

 

https://youtu.be/uMwBxL5ZlGw?t=1347- 22:27 - The genuine VRC6 sounds punchier than the simulated VRC6. A difference in volume levels perhaps?

 

https://youtu.be/uMwBxL5ZlGw?t=1392- 23:12 - It is interesting that they did not complain about the modulation unit counter issue with Bio Miracle Bokutte Upa.

 

Any Console or Computer that uses a FM Synthesis (eg Yamaha YM3812 found in the Adlib, SoundBlaster) actually produces frequencies that can't be captured with 48Khz. The SN76489 (Sega Master System, Coleco, PcJr/Tandy 1000) can generate frequencies that are well outside human hearing (eg 111Khz.) So yeah, audio is a bit more of a crapshoot to get perfect because the original audio generation wasn't perfect.

Many Adlib-compatible cards using real Yamaha OPL3 cores would resample the output from 49.716KHz to a more friendly 44.1KHz or 48KHz. I believe that the audio output device to which emulators like DOSBox submit their audio are also subject to resampling.

 

Ultimately, it should not matter to human ears. The Nyquist frequency requires that a sampling rate must be double the output rate in order to fully capture the sound. Thus, a 48KHz sampling rate can reproduce frequencies up to 24KHz. The 49.716KHz sampling rate can reproduce frequencies up to 24.858Khz. If a human being can distinguish between frequencies in that range (or even from 22.050KHz), then he or she should consider joining the X-Men. I would also suggest that the low-pass filter of an Adlib-compatible card would likely filter out such high frequency components of the audio signal.

Edited by Great Hierophant
  • Like 2
Link to comment
Share on other sites

 

The Snes Jr is typically the 1-chip model. If you look around online, you'll find that SNES systems have been failing like a plague hit them ever since 2012. So I'm really looking forward to seeing a FPGA SNES at some point, regardless of who does it.

Didn't know that, guess I will cherish my SNES Jr all the more now ... and I agree an FPGA version would guarantee its continued legacy in physical form.

Link to comment
Share on other sites

Regarding the My Life in Gaming video :

 

https://youtu.be/uMwBxL5ZlGw?t=1290- 21:30 - Their example here does not really show any substantial sound distinction between the real NES and the Nt mini

 

 

I think the chip is accurate, just the frequency response is different, and that might simply be how it was captured.

29oribp.png

I captured the youtube stream, normalized it (to make the volume closer to +1/-1,) and then cut the NT Mini Analog section and put it below the NES.... err I'm not sure which one is which actually, thank you crop feature.

 

Which is to say, I don't think there is an issue with the emulation, maybe the filtering or compression.

 

Looking at more sections of the audio, it looks like the initial volume envelope on the NES starts louder. It could also be that they didn't sample the loop from the same point in the song.

Edited by Kismet
  • Like 1
Link to comment
Share on other sites

Regarding the My Life in Gaming video :

 

https://youtu.be/uMwBxL5ZlGw?t=358- 5:58 - The FDSStick issue is weird one and I think it is more likely that their FDS RAM Adapter is failing or the pins are dirty. Once the FDSStick does its loading thing, it essentially lies dormant.

 

https://youtu.be/uMwBxL5ZlGw?t=1290- 21:30 - Their example here does not really show any substantial sound distinction between the real NES and the Nt mini

 

https://youtu.be/uMwBxL5ZlGw?t=1347- 22:27 - The genuine VRC6 sounds punchier than the simulated VRC6. A difference in volume levels perhaps?

 

https://youtu.be/uMwBxL5ZlGw?t=1392- 23:12 - It is interesting that they did not complain about the modulation unit counter issue with Bio Miracle Bokutte Upa.

I have an FDSStick + RAM Adapter and have been using it with my NT mini with no issues in HDMI and analog mode. However, there is a competing stick called FDSemu that has a weird issue. It works the first time you load a game perfectly, but if you power off the NT mini and power it back on, the menu is corrupted until the stick is unplugged for at least 10-15 minutes.

 

VRC6 sounds like it's filtered vs not filtered to me, maybe some volume differences too.

 

Which issue are you referring to with FDS? I'm curious, I usually use cartridge audio from the ram adapter but I thought digital was exactly the same aside from the lack of a low pass filter.

Edited by rezb1t
  • Like 1
Link to comment
Share on other sites

Since the FPGA mostly simulates a digital device, how difficult is it to accurately simulate analog components such as resistor networks, high/low pass filters, harmonic oscillators, etc? Most game consoles merely used resistor ladders to internally bridge multiple outputs on a CPU into discrete logic levels for analog output, and also used duty cycling and other trickery. Duty cycles and pure resistor networks would be easy enough to implement. HF noise can cause real issues with a DAC chip creating all sorts of harmonics if digitally sampled without a low pass filter at half the sample rate or less. Most consoles suppress HF noise in the ultrasonic range. HiFi stereo equipment do this typically with a 20-20,000 Hz bandpass on inputs but consoles are a wild wild west sort of thing.

 

Modeling analog things is quite a bit more difficult than digital things. As for audio, I have a proprietary filtering and resampling setup that resamples all audio to 48KHz to remove any HF components above around 20KHz. Humans can't hear above this, so anything past 20KHz is useless and will only cause aliasing or other nasty problems.

 

Any Console or Computer that uses a FM Synthesis (eg Yamaha YM3812 found in the Adlib, SoundBlaster) actually produces frequencies that can't be captured with 48Khz. The SN76489 (Sega Master System, Coleco, PcJr/Tandy 1000) can generate frequencies that are well outside human hearing (eg 111Khz.) So yeah, audio is a bit more of a crapshoot to get perfect because the original audio generation wasn't perfect.

 

 

Since humans cannot hear those things, they need to be filtered off. I actually have a complete OPL3 and OPL2 implementation in the FPGA (YM3812 is OPL2) and have no problems bandlimiting it to 20KHz, it sounds pretty decent. This is the FM unit that was shoehorned into running the FM for the SMS, since it's a superset of the YM2413.

 

To be honest, I wasn't referring to HDMI here (mainly). In the Nt mini specs you can find that 48khz 16 bit audio is generated for the analog output as well, so this is what I'm wondering about. An optional old TV audio filter would be nice, but I'm actually considering hooking up the Nt mini/Z3K to a real old TV via composite/RF. :) Let's not forget that the Nt mini/Z3K is also very interesting to people that don't want to use HDMI -- I stopped using emulators years ago so that I could enjoy raw, dirty composite picture again.

 

Regarding hooking up the Nt mini/Z3K to an old TV, there was also this really interesting question by Great Hierophant that kevtris probably did not notice:

 

"If or when the cores for the Atari 2600, 5200, 7800, Odyssey2, Intellivision and Colecovision are released, how will their analog lo-fi color signals be processed? The NES generates composite color inside the chip, not RGB and the Nt Mini outputs the exact same composite signal that the real NES does. From what I can tell, the Atari consoles and the Intellivision also generate color in the composite domain. The Odyssey2 and Colecovision seem to generate color in the RGB or YPrPb domain."

 

The goal of the system was to produce as clean of a single for both audio and video as possible. This means high quality DACs (no resistor ladders), minimal filtering/muffling, and no compromise on video quality. The analog video was designed to be as clean as possible coming out. The way the composite is generated varies by system, like on the NES it is generated by hardware similar to a real system including reproducing the exact voltage levels and timing. On other systems so far, I have been using RGB, then converting digitally to composite, s-video, and component. It IS possible to generate video on i.e. the 2600 the exact same way a real system does it, but I have not done this. I might go back and add it, but right now I have been trying hard to get all my cores converted and playable and debugged first so people can play them.

 

The coleco generates its video in the YPrPb domain and there are a few others that do like the video brain, and the APF MP-1000 (which I am going to FPGA soon- it's like a 1 day job). The rest are a smattering. 2600 and 7800 have awful video generation circuitry composed of a resistor DAC and a carrier delay line (which you adjust with that trim pot). I am not sure what the intv uses except a small 18ish pin chip that turns a 5 bit code into video.

 

I figure most people will be using RGB or HDMI to play this stuff (and maybe composite), so I have been focusing on those in that order. There's 20 or so video modes the nt can produce, and there's only 1 of me so I have to dole out my time usage accordingly. I might come back and revisit it but it won't be for a long time.

 

You keep on bringing up more advanced HW and although we all do hope I believe we should be more realistic here, even adding 2Y to development.

 

At present there's no FPGA core for any of those, even more we do not have yet complete cores for MD/Genny or SNES, please anyone correct me if I'm wrong (the MD core for MiST is still in development, not sure if there are more advanced ones).

 

To add to that Kevtris hasn't even started any of the 16bits core development (afaik, to be fair I don't know for sure) and I am afraid it will be somewhat complex (given the lack of known fully working cores), I am faithful he can pull it off (the 16bits cores I mean) but the 32/64 bits it's way far ahead .... I believe we still don't have a complete LLE for N64, no complete SW emu for Saturn either etc...etc... I also think those 32/64bits have been emulated/compromised at higher level (for sure nothing that translates well to FPGA or can be used as a guiding reference) just to cover as many games as possible rather than circuit level accuracy. I also wouldn't be surprised if much more LEs (i.e.: bigger FPGA) are required to even think of those.

 

Again, hope is good, but I also HOPE that the Z3K wouldn't come out in Y3K (I believe kevtris would eventually make himself immortal by injecting his own consciousness in one of his FPGA ;-) ).

I have done 16 bit dev, like completing the SNES audio hardware (SPC) and making a standalone core/player for it which I will be releasing btw. But no actual system yet. I kind of wanted to do Genesis first because it looks very simple compared to SNES. TG-16 looks super simple too but the 7MHz bandwidth on the RAM is just a bit too fast right now for my RAM hardware. I almost need two SDRAMs / DDR1 chips and "Double pump' them to get around the latency issues. Genesis' big problem is the 68K. Once I write my own 68K core it will open up neoego, genesis, super a'can and lots of other things. I have SMS done, so that gives me a lot of the requisite parts for a genesis. It just need 1 more video mode, a 68K, and FM audio which I am a veteran at.

 

I was thinking to speed along development of genesis FM audio, I could make a GYM player to get it all debugged and ready to go so I can just drop it in. That was kind of the idea with SNES. Having the SPC part done before everything else means I can just drop it in and not worry about audio at all, which is super nice. Just one less thing to worry about.

 

As for more complex stuff, probably not in the cards, at least for awhile, due to complexity and raw clock speed. FPGA's kinda poop out at 75MHz or so for moderately intensive logic usage (i.e. lots of product terms). To get the 148.5MHz of 1080p, it required a lot of pipeline stages, with only a little processing being performed each stage, and lots of stages to spread it out over. This speed limit might prevent N64. Be that as it may, I think the final end game at least right now (and for my skill level) is PS1.

 

Regarding the My Life in Gaming video :

 

https://youtu.be/uMwBxL5ZlGw?t=358- 5:58 - The FDSStick issue is weird one and I think it is more likely that their FDS RAM Adapter is failing or the pins are dirty. Once the FDSStick does its loading thing, it essentially lies dormant.

 

https://youtu.be/uMwBxL5ZlGw?t=1290- 21:30 - Their example here does not really show any substantial sound distinction between the real NES and the Nt mini

 

https://youtu.be/uMwBxL5ZlGw?t=1347- 22:27 - The genuine VRC6 sounds punchier than the simulated VRC6. A difference in volume levels perhaps?

 

https://youtu.be/uMwBxL5ZlGw?t=1392- 23:12 - It is interesting that they did not complain about the modulation unit counter issue with Bio Miracle Bokutte Upa.

 

 

Many Adlib-compatible cards using real Yamaha OPL3 cores would resample the output from 49.716KHz to a more friendly 44.1KHz or 48KHz. I believe that the audio output device to which emulators like DOSBox submit their audio are also subject to resampling.

 

Ultimately, it should not matter to human ears. The Nyquist frequency requires that a sampling rate must be double the output rate in order to fully capture the sound. Thus, a 48KHz sampling rate can reproduce frequencies up to 24KHz. The 49.716KHz sampling rate can reproduce frequencies up to 24.858Khz. If a human being can distinguish between frequencies in that range (or even from 22.050KHz), then he or she should consider joining the X-Men. I would also suggest that the low-pass filter of an Adlib-compatible card would likely filter out such high frequency components of the audio signal.

 

I think it's possible the FDS stick doesn't like my speed compensation for HDMI, so it's corrupting the data as it's loaded. I want someone to try the FDS stick while playing in RGB mode to see if that fixes it. If so, then the method of attack will be to fix it on the FDS stick itself. Interestingly, normal FDS games with a regular disk drive work fine- I tested 3 different ones and 20 different games. So whatever is wrong is probably fixable inside the FDS stick. I think it's open source even. I don't have time to work on that though, and it will be moot when I add FDS loading on the system itself.

 

re: modulation counter, I fixed that so my FDS audio should be good to go, other than the total lack of lowpassing which I can't add due to resource usage in the FPGA right now. In fact I was using the bio miracle NSF compared against youtube videos of a real FDS playing the game to make sure I got it right. Supposedly this is one of the most difficult things to get right.

  • Like 2
Link to comment
Share on other sites

To add to that Kevtris hasn't even started any of the 16bits core development (afaik, to be fair I don't know for sure) and I am afraid it will be somewhat complex (given the lack of known fully working cores), I am faithful he can pull it off (the 16bits cores I mean) but the 32/64 bits it's way far ahead .... I believe we still don't have a complete LLE for N64, no complete SW emu for Saturn either etc...etc... I also think those 32/64bits have been emulated/compromised at higher level (for sure nothing that translates well to FPGA or can be used as a guiding reference) just to cover as many games as possible rather than circuit level accuracy. I also wouldn't be surprised if much more LEs (i.e.: bigger FPGA) are required to even think of those.

 

Again, hope is good, but I also HOPE that the Z3K wouldn't come out in Y3K (I believe kevtris would eventually make himself immortal by injecting his own consciousness in one of his FPGA ;-) ).

 

All of that. This is precisely why I'd expect the Z3K to have a much bigger FPGA than what currently being bandied about. At least double or triple the number of LEs. While they might not be fully used right away, it opens the door for more advanced cores done by a team effort. I'd even go as far recommending integration (into the console) an ARM or X86 to get some sort of operating system support.

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...