Page 4 of 5

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

Posted: Fri Jul 14, 2017 9:41 am
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.

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

Posted: Fri Jul 14, 2017 3:37 pm
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.

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

Posted: Fri Jul 14, 2017 3:47 pm
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?)

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

Posted: Fri Jul 14, 2017 5:39 pm
by rainwarrior
I think just "wavetable" is the name for these.

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

Posted: Fri Jul 14, 2017 5:45 pm
by lidnariq
No convenient way to disambiguate "full" wavetable synthesizers like the Gravis Ultrasound was BITD?

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

Posted: Fri Jul 14, 2017 5:59 pm
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.

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

Posted: Fri Jul 14, 2017 6:05 pm
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.

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

Posted: Fri Jul 14, 2017 8:31 pm
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?

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

Posted: Fri Jul 14, 2017 8:39 pm
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.

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

Posted: Fri Jul 14, 2017 8:53 pm
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.)

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

Posted: Fri Jul 14, 2017 10:57 pm
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.

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

Posted: Fri Jul 14, 2017 11:20 pm
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)

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

Posted: Sat Jul 15, 2017 12:22 am
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.

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

Posted: Sat Jul 15, 2017 9:43 am
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.

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

Posted: Sat Jul 15, 2017 10:09 am
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.