It is currently Mon Dec 18, 2017 3:32 pm

All times are UTC - 7 hours



Forum rules


Related:



Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 127 posts ]  Go to page 1, 2, 3, 4, 5 ... 9  Next
Author Message
PostPosted: Thu Jul 28, 2016 3:02 am 
Offline

Joined: Mon Mar 30, 2015 10:14 am
Posts: 206
Hi all, i have a discussion with stef on a french forum .
Like you know already, stef dislike the snes and specially the 65816 .
For him this CPU is a 8 bit CPU because the bus is 8 bit,for me it's a 16 bit (because the ALU is 16 bit) but a system with a 65816 cannot be qualified of really 16 bit because the bus .

For me the bit of a CPU is dependant of his ALU, but Z80 have a 4 bit ALU multiplexed to 8 bit .

What do you think ??


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 4:20 am 
Offline

Joined: Tue May 26, 2009 5:39 am
Posts: 19
TOUKO wrote:
For him this CPU is a 8 bit CPU because the bus is 8 bit,for me it's a 16 bit (because the ALU is 16 bit)

You are right. The Intel 8088 and the Motorola 68008 are also 16 bit CPUs.


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 5:16 am 
Offline

Joined: Mon Jul 01, 2013 11:25 am
Posts: 228
8088 and 68008 are 8 bit data bus cut down version of 8086 and 68000 which are both true 16 bit CPU where the 65C816 doesn't own by itself a full 16 bit core design (most of it comes from the 65C02).

@Touko> If you were totally honest, i said the 65816 is as much 16 bit than the 68000 is 32 bit. I also said for for me the 65816 is more a 8 bits CPU with extended 16 bits capabilities (enabling user friendly 16 bit development).
And yeah i dislike the 65C816 and the SNES in a technical point of view as they are both weak piece of hardware and badly designed... i can't do anything for that :-/ On the other hand i love playing on SNES and Super Metroid stay my untouched best game for ever :p


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 5:44 am 
Offline

Joined: Mon Mar 30, 2015 10:14 am
Posts: 206
Quote:
i said the 65816 is as much 16 bit than the 68000 is 32 bit

Not for me, the 68k like the 65816 has a 16 bit ALU,i said even if the 68k could do 32 bit ops, they are splited internally,into 2 16 bit ops, in contrary to 16 bit ops in the 65816.

Seems to be the same thing, i think that the 8 bit ops on Z80(because of the 4 bit ALU) is close to 32 bit on the 68k, may be this why the Z80 efficiency is not so fabulous(but it's not a bad or weak CPU, is only less efficient) .

Quote:
And yeah i dislike the 65C816 and the SNES in a technical point of view as they are both weak piece of hardware and badly designed

Stef i respect your opinion, although we do not often agree,but "weak piece of hardware" is a little bit strong and false, the snes is not perfect, and some parts are badly designed(i agree), not the whole thing .
You have some parts in Md which are weak too,there is no perfect hardware(except the PCE :P ) .
But i not understand why your are saying that the 65816 is a bad CPU because is only a 16 bit 6502(this is entirely false of course) !!!

i quote a googled translation of your interpretation of the 65816 design:
Quote:
And if you want to drive the nail on the so-called 16-bit architecture of the 65816 (which is also officially introduced as naked 8/16 bit CPU):
In fact, the 65816 is directly derived from 6502, the only changes it's just the passage of certain registers in 16-bit, 16-bit ALU is a memory address that goes to 24 bits. But, and the big but is that it gives exactly the same logic as the 6502 for the whole game IO / instruction decoding etc ... that remains to 8 bits. And therein lies the problem since all the data go through it (suddenly I come back to the fact that the bus width is decidedly decisive). But this choice is understandable as extend the registers and the ALU is very simple, for review against all the IO system and the instruction decoding it would have been much more complex and have more investment (especially if they wished maintain compatibility with the 6502). In fact they even kept the 16-bit PC register 6502 and 24-bit addressing is only possible thanks to an additional register PB (8 bits) that contains 8 bits.

For me the 65816 it is rather an 8-bit CPU whose capabilities have been extended to make it 16-bit friendly.


Last edited by TOUKO on Thu Jul 28, 2016 7:03 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 6:55 am 
Offline

Joined: Sun Mar 27, 2011 10:49 am
Posts: 220
Location: NYC
The phrase "16-bit CPU" doesn't precisely mean anything.

There are CPUs with 16-bit buses, CPUs with 16-bit ALUs, and CPUs with 16-bit ISAs; at best, we might define a 16-bit CPU to be a CPU with all of the above, in which case neither the 65816 (8/16/16) nor the 68000 (16/16/32) are "true" 16-bit; at worst, the phrase is just marketing.


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 6:57 am 
Offline

Joined: Mon Jul 01, 2013 11:25 am
Posts: 228
TOUKO wrote:
Stef i respect your opinion, although we do not often agree,but "weak piece of hardware" is a little bit strong and false, the snes is not perfect, and some parts are badly designed(i agree), not the whole thing .
You have some parts in Md which are weak too,there is no perfect hardware(except the PCE :P ) .
But i'am not understand why your are saying that the 65816 is a bad CPU because is only a 16 bit 6502(this is entirely false of course) !!!


To be honest i think that a major part of the SNES is badly designed... really.
For instance it has some nice sound capabilities but severely limited by the small amount of dedicated memory... i can understand the quantity was driven by cost but then, why designing it in a way so we can't easily stream sound data to overcome that limited memory ?
Same thing for the graphics capabilities, a large part of video mode aren't really useful, the video chip is overcomplicated and most of its features useless. Why did they though when they were implementing the 64x64 sprite size for instance ? It look like the SNES specs were decided by marketing guys who just wanted to show "big numbers", just to show the SNES can do more than the competitor even if in reality the features are not usable.

The real nice features in the SNES for me are the following ones:
- rich colorset and palette
- transparency effect
- pixel windowing
- mode 7
- HDMA

But all these is completely hidden by the largely convoluted and complex design of the system itself. The MD has its weakness: the poor number of palette is terrible and the sound part could have be done in a better way. But all in one, it's still much more well designed than the SNES. Even the Saturn is for me not as terrible than the SNES in term of design. The Saturn is very complex, convoluted but at least it doesn't have real weakness as the SNES can have. It's just a super complex system (but to be honest i don't like it neither).

Quote:
i quote a googled translation of your interpretation of the 65816 design:
Quote:
And if you want to drive the nail on the so-called 16-bit architecture of the 65816 (which is also officially introduced as naked 8/16 bit CPU):
...
For me the 65816 it is rather an 8-bit CPU whose capabilities have been extended to make it 16-bit friendly.


No worries i totally assume what i said even if the google translation is a bit rusty :p


Last edited by Stef on Thu Jul 28, 2016 9:15 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 7:16 am 
Offline

Joined: Mon Mar 30, 2015 10:14 am
Posts: 206
Quote:
No worries i totally assume what i said even if the google translation is a bit rusty :p

yes i know sorry, but the text was too long for a by hand traduction . :(

For the Md weakness, i dislike the FM chip,he is very slow and a low grade FM chip IMO,too often the sound Fx are terrible,musics are really excellent in some case (treasure, techno soft,in midnight resistance),i dislike the volume setting,too high(seems to be hard to set correctly).
The PCM capacities are bad, because you have no volume control,nor panning and you must use timed code with Z80 for correct rendition,i noticed very distorded samples in your XGM driver(it's not your driver fault, but the difficulty to sync the samples stream with the 2612's DAC),but not always,it depends of what sample you are playing,plus the stupid Z80's banking system .


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 8:13 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19357
Location: NE Indiana, USA (NTSC)
Is the Z80 banking any more stupid than MMC1? And is the PCM any worse than NES $4011? Hmmm... MMC1 and $4011... How many words can you make before the sun goes down?

As for the "bit" designation for an entire console, I choose the widest data bus in the system, measured in word width times words per clock.
  • For NES, Game Boy, and Master System, it's 8.
  • For TG16 and Super NES, it's 16 (VDC/PPU data bus).
  • For Genesis, it's 16 (CPU data bus) or 16 (VDP data bus, 8 bits times 2 transfers per clock).
  • For Jaguar, it's 64.
  • And for Nintendo 64, it's also 64 (9-bit RAM with parity, so really 8 bits, times 8 transfers per clock).

The SPC700 was designed for maximum isolation from the rest of the system. This makes streaming harder (you need HDMA) but reduces bus contention, which you can sometimes get on a Genesis when the Z80 and 68000 try to access the cart at once.

The real problem with the 6502 is that it isn't really designed to run C well. The 65816 improves on this somewhat with the d,S and (d,S),Y addressing modes, as well as the base pointer register that TCD and PLD set. But arrays of structs in the heap are still a mess because there's no quick way to add a number other than 1 or -1 to an index register.


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 8:23 am 
Offline

Joined: Mon Mar 30, 2015 10:14 am
Posts: 206
Quote:
Is the Z80 banking any more stupid than MMC1? And is the PCM any worse than NES $4011?

if i remember correctly, it's serial, and 1 bit at a time, you spend 100+ cyles to map a bank .

Quote:
And is the PCM any worse than NES $4011?

worse no, they are not scratchy, or muffled, only distorded,but it's very audible,and you must be carefull of DMA contention,which can be problematic.

Quote:
The real problem with the 6502 is that it isn't really designed to run C well. The 65816 improves on this somewhat with the d,S and (d,S),Y addressing modes, as well as the base pointer register that TCD and PLD set. But arrays of structs in the heap are still a mess because there's no quick way to add a number other than 1 or -1 to an index register.

Of course in that case you're right, 65xxx are not suited for high level languages, this why i'll go for 68k in a PC, you need of this king of CPU (large addressable memory, not bank mapping,good performance for high level language,no need expensive memory, useful when you need a big amount) .
For a game system,with limited resource requirements i'll prefer a 65xxx, fast, a huge margin for optimisations,a fast interrupt system, a lower amount of bytes taken by compiled code,not expensive at all,very well suited for game systems .


Last edited by TOUKO on Thu Jul 28, 2016 8:52 am, edited 3 times in total.

Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 8:35 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19357
Location: NE Indiana, USA (NTSC)
MMC1 on NES is also serial. PRG ROM banking on MMC1 (SGROM/SNROM, up to 2 Mbit) takes 56 half-cycles. (Counting half cycles to account for difference in clock speed and IPC between 6502 and Z80.)
Code:
sta $E000  ; 8 - first 4 bits are PRG A14-A17
lsr a      ; 4
sta $E000  ; 8
lsr a      ; 4
sta $E000  ; 8
lsr a      ; 4
sta $E000  ; 8
lda #$00   ; 4 - fifth is cart WRAM disable, so clear it
sta $E000  ; 8


SUROM (4 Mbit) has A18 over in another serial register, taking a total of 100 half-cycles.
Code:
sta $E000  ; 8 - first 4 bits are PRG A14-A17
lsr a      ; 4
sta $E000  ; 8
lsr a      ; 4
sta $E000  ; 8
lsr a      ; 4
sta $E000  ; 8
and #$02   ; 4 - clear WRAM disable bit but preserve fifth bit for next write
sta $E000  ; 8
sta $A000  ; 8 - SUROM doesn't use first 4 bits for anything important
sta $A000  ; 8
sta $A000  ; 8
sta $A000  ; 8
lsr a      ; 4
sta $A000  ; 8 - but the fifth bit is A18


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 8:43 am 
Offline

Joined: Mon Mar 30, 2015 10:14 am
Posts: 206
Wahou, MMC1 banking is very bad too .. :shock:

The difference is spending 100 cycles to bank a CHROM, is in fact not a bad deal comparing how many cylces you must spend to transfert those tiles in VRAM .


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 8:48 am 
Offline

Joined: Thu Aug 12, 2010 3:43 am
Posts: 1589
tepples wrote:
The SPC700 was designed for maximum isolation from the rest of the system. This makes streaming harder (you need HDMA) but reduces bus contention, which you can sometimes get on a Genesis when the Z80 and 68000 try to access the cart at once.

Eh, the 68000 and Z80 fighting for the bus is nothing, it's only a handful of cycles which is very little compared to how much the code itself takes up and the Z80 isn't accessing ROM all the time either (as it's spending nearly all its time in its own RAM). The problems are more DMA (which forces the Z80 to stop for a while if it tries to use ROM) and when the 68000 wants to modify Z80 RAM (which again requires stopping the Z80), on top of bank switching wasting a significant amount of time, not to mention Z80-only engines that try to handle FM and PSG on the Z80 as well while it's struggling to get all PCM samples at the right moment.

There are lots of showstoppers for the Z80, but bus contention with the 68000 isn't one of those =P


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 8:50 am 
Offline

Joined: Mon Mar 30, 2015 10:14 am
Posts: 206
Quote:
The problems are more DMA (which forces the Z80 to stop for a while if it tries to use ROM)

Yes but this can be "easily" solved with a RAM buffer,this inevitably,will introduce some delays before playing PCM .


Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 9:16 am 
Offline
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3166
Location: Nacogdoches, Texas
If I were to design the SNES in a way I imagine it would cost about the same: (of course, I have no way of knowing...)

No SPC700 or 64KB of audio ram, just have the 65816 handle audio...
Give the 64KB of main ram to the video hardware for 128KB of vram...
Get rid of all the BS video modes (4,5,6, maybe 0) and use the space for more oam space, like adding 2 more bits for each sprite for size and tile selection...

And because I felt that this might be cheaper now from getting rid of the SPC700 and the audio ram, upgrade the SNES ram speed to fast rom speed. Also, the ram is now 64KB.

Of course, drooling over what the SNES could have been is stupid. I wouldn't call the SNES any weaker than the Genesis because although it's lacking in terms of CPU power, I feel the video hardware makes up for it, which is more important to me personally. CPU power is important with something like 3D on a system with no 3D hardware acceleration like this, but it's still not powerful enough to make a 3D game practical. I definitely agree that it's more poorly designed though, with tons of bad resource management that I addressed earlier. I don't know why they felt like chopping the vram bandwidth into a million different unpractical and borderline useless ways when they could have used the PPU space more constructively.

My opinion personally, but I believe the number of bits in a CPU should be determined by how much the instruction set can handle. I mean, imagine if you had the two identical CPUs, except one with an 8 bit data bus that runs at 4MHz and another with a 16 bit data bus that runs at 2MHz. (This isn't related to the SNES and the Genesis, I'm just trying to prove a point about trying to determine the bits of a CPU) If anything, the first one is better, because the second one is wasteful when it comes to 8 bit instructions. In other words, if the 65816 is a 16 bit CPU, the 68000 is a 32 bit one. However, doesn't the 68000 not support 32 bits for every instruction, unlike the 65816 that supports 16 bits for every instruction?


Last edited by Espozo on Thu Jul 28, 2016 9:23 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Thu Jul 28, 2016 9:21 am 
Offline

Joined: Mon Mar 30, 2015 10:14 am
Posts: 206
Quote:
No SPC700 or 64KB of audio ram, just have the 65816 handle audio...

definitely not a good solution, because the CPU can be halted during all the Vblank and cannot play any PCM in that period .

Quote:
Of course, drooling over what the SNES could have been is stupid. I wouldn't call the SNES any weaker than the Genesis because although it's lacking in terms of CPU power,

CPU power on snes is problematic because of the weak WRAM, rather than 128ko, nintendo should use
faster RAM, but lesser, like 32/64 ko .
Snes's sprites system is also bad and need to be rethinked, this nes heritage should be out and replaced by a real SAT, with multiple size on screen at the same time .

But guys, do you think tha the 65816 is a 16 bit processor or not ??, that's in fact also the question :P


Last edited by TOUKO on Thu Jul 28, 2016 9:37 am, edited 1 time in total.

Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 127 posts ]  Go to page 1, 2, 3, 4, 5 ... 9  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group