Designing a NES compatible console - nesdev designs, part 2.

You can talk about almost anything that you want to on this board.

Moderator: Moderators

Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: Designing a NES compatible console - nesdev designs, par

Post by Pokun »

65816 is the more capable one (often said to be the most capable 65x microprocessor) so I'd go with that. It's like one instruction to disable emulation mode right after boot, so that's not a problem, pretty much every SNES game does that already. It would be worse if it started in native mode and every 6502 program that would run on it would break.

I wouldn't worry too much about compatibility with all Famicom and NES games. Isn't this supposed to be a new console that only uses NES compatibility as a fall-back for programmers that don't want to dedicate too much time to a system no one has?


BTW I started drawing up my own fantasy system some time ago, also using the 65816: :P
Fantasy Computer Fancom
A fantasy 8-/16-bit computer and video game console.

CPU: 65816
Video: ELF-VPU
Sound: SIREN-APU, Z80 core
ROM: BIOS, DWARF-BASIC (changeable)
RAM: 16 kB (expandable)
Save Memory: 64 kB EEPROM (expandable)
Ports: 4 controller ports, PS/2, USB, Cassette Tape, Expansion port, Cartridge port,
SD-card port, RGB video, AV (RCA), S-video, 3.5 mm stereo headphone, HDMI.

Video Processing Unit
ELF-VPU, a custom chip that is similar to the Yamaha VDPs for MSX,
Hudon's VDC for PC Engine and Nintendo's PPU.
VRAM: 64 kB
Colors: 24-bit RGB, 16x16 palettes (shared by sprites and BG characters)
Sprites: 64 sprites, 16 on a scanline, hardware collision, sizes: 8x8;
8x16; 16x16 (mix freely), zooming, x-/y-flipping.
Background: 2 BG layers and a backdrop color, 8x8 characters, 256x224 dot.
Scroll: Both backgrounds, both axes, pixel-by-pixel.
Display Modes: Text, Graphic, Bitmap.
Interrupt: Vblank, collision and sprite overflow.
Output: RGB, S-video, composite (NTSC and PAL), HDMI.

VRAM content:
Background Name Table (BGNT)
Sprite Attribute Table (SPAT)
Pattern Table (PATT) (shared by sprites and BG characters)
Palette Table (PALT)

Audio Processing Unit

Channels:
Rectangle
Triangle
Sawtooth
Noise
Programmable Waveform
PCM

Databus is 16-bit. Address space is 24-bit.
Save Memory is used to store system settings, but can
also be used by other games and programs for saving data in a
non-volatile memory.
There is also a points system, where points are saved in a region of
the Save Memory (like Play Coins of 3DS).

Besides BASIC, a text editor, built-in games, a settings menu and a
65816 assembler are also included.
Numbers and limitations are arbitrary and don't have much to do with reality.
Last edited by Pokun on Fri Jul 14, 2017 10:43 pm, edited 2 times in total.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Designing a NES compatible console - nesdev designs, par

Post by psycopathicteen »

PSG can mean anything including squares, triangles, saws and noise. If you are going to have FM, you might as well have multiple waveforms such as squares, triangles, saws, etc.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Designing a NES compatible console - nesdev designs, par

Post by lidnariq »

Or just a chip wavetable like N163 or TG16, rather than a fixed set of waveforms.

(Is there an established name for this kind of audio generation?)
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Designing a NES compatible console - nesdev designs, par

Post by rainwarrior »

I think just "wavetable" is the name for these.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Designing a NES compatible console - nesdev designs, par

Post by lidnariq »

No convenient way to disambiguate "full" wavetable synthesizers like the Gravis Ultrasound was BITD?
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: Designing a NES compatible console - nesdev designs, par

Post by TmEE »

From what I have understood, wavetable refers to devices that play fixed size loops, "Digital oscillators" that are only supposed to play a single period of some waveform. Things that play arbitrary sized samples and allow any kind of loop points are typically called samplers instead of wavetables.
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Designing a NES compatible console - nesdev designs, par

Post by rainwarrior »

lidnariq wrote:No convenient way to disambiguate "full" wavetable synthesizers like the Gravis Ultrasound was BITD?
Well, I am not sure I'd call anything a "full wavetable", but the word I'd choose for that is "sampler". The GUS is a sampler. All samplers can be used for wavetable synthesis, too, because wavetable is a subset of sampler.

So... yeah GUS was marketed with a nebulous use of the word "wavetable" (and technically it can be used as one), but you can use the word "sampler" to disambiguate that it's not just wavetable.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Designing a NES compatible console - nesdev designs, par

Post by psycopathicteen »

I've always wanted to see a super saw (7 detuned saws) being done in a chip tune, and maybe super squares as well.

Is there something special about super saws that make them easier to build than other "super" waveforms?
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Designing a NES compatible console - nesdev designs, par

Post by rainwarrior »

psycopathicteen wrote:I've always wanted to see a super saw (7 detuned saws) being done in a chip tune, and maybe super squares as well.

Is there something special about super saws that make them easier to build than other "super" waveforms?
Not that I know of, but I think the saw having both even and odd harmonics in its spectrum helps it have a "fuller" effect when phasing with other saws like that.

Maybe you'd like one of my favourite Famicompo multichip tracks, Dendrite by Xaimus.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Designing a NES compatible console - nesdev designs, par

Post by lidnariq »

Saw, triangle, and all duties of pulse wave are really easy in analog.

But the first two aren't particularly easy in digital.


(MAME's source shows a noticeable number of arcade machines that have 3 to 6 SN764xx PSGs.)
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: Designing a NES compatible console - nesdev designs, par

Post by Pokun »

By PSG I meant the wavetable thing, I changed the name to make it clear.
I thought having a few fixed waveform channels and one programmable would make a nice balance of limitation and freedom (as opposed to only using programmable ones like in PC Engine). This mimics the Game Boy's sound capabilities.

Also it would be nice if the noise channel could do both white noise and looped noise like the NES APU.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Designing a NES compatible console - nesdev designs, par

Post by lidnariq »

Have you ever played around with the weirdness that is the Lynx's PSG? You get to manually choose the taps and seed value on the LFSR. It's a good deal less versatile than the OPL2 FM synth parameters, and about as cryptic. As a result, it's very unique, and quite parsimonious in terms of silicon.

(Examples)
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: Designing a NES compatible console - nesdev designs, par

Post by FrankenGraphics »

Sawtooth waveforms aren't actually all too useful in themselves in plain use, because they're too rich in overtone for many applications. The basic idea of a saw is that it needs to be filtered, and filters have been fairly uncommon in vgm chips and/or surrounding circuitry (SID is a notable exception). They're still good to have around, though.

A "super saw" would require multiple oscillators, or maybe alternatively a round robin single oscillator like in N163, or a long sample.

EDIT: Here's what a simple supersaw instrument on N163 would sound like. I had to dampen the upper edge because it's causing a lot of noise when moving straight to lower; it becomes apparent when using 7 saws at once.
supersaw.ftm
(1.76 KiB) Downloaded 127 times
re: pokun: A wawetable chip could be more quick/easy to interface if you let each channel toggle between user-defined RAM and a "factory setting" from onboard ROM. There the standard could specify/provide strips of waveforms for all your basic waveform needs: Pulses with varying duties (PWM sweeps), Sine to triangle, Triangle to pulse, cycled noise, and so on.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Designing a NES compatible console - nesdev designs, par

Post by psycopathicteen »

I think there should be a lot of channels, so that you can easily do trance music. I also like the echo on the SPC700 and the fact you can play around with FIR filters, but it would be even cooler if you can arbitrarily change the delay amount so you can make flanging and chorus effects. Also it should have interlinked FM synth.

I'm not sure if all this stuff would've made the chip expensive in the late 80s to early 90s though.
User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: Designing a NES compatible console - nesdev designs, par

Post by Bregalad »

Well, I am not sure I'd call anything a "full wavetable", but the word I'd choose for that is "sampler". The GUS is a sampler. All samplers can be used for wavetable synthesis, too, because wavetable is a subset of sampler.
Well I've often seen samplers being called "wavetables", even though I agree it's confusing since it's more than a table, there's also a loop start and loop end (and sometimes, multiple loops mode such as forward, reverse or ping-pong, although many samplers can only support forwards, and those can be easily made to support reverse and ping-pong by doubling the loop part).

Samplers aren't necessarly a subset of "trival" wavetable synths, usually those trivial synths do not do any kind of interpolation, while samplers usually does. So for example a low-pitched square or saw wave can sound very filtered in a sampler.
Post Reply