same game on NES and MSX, the best version?

Page 5/6
1 | 2 | 3 | 4 | | 6

By l_oliveira

Hero (526)

l_oliveira's picture

13-02-2015, 14:26

gdx wrote:

Are you sure that Sega Master System's VDP are not compatible? The Sega Mark III can run SG-1000 cartridges. The Mark III is very close of the SMS. I think VDP are same.

I'm 1000% sure a SMS VDP would work just right as a VDP in a MSX1 computer if mapped at the right I/O port.

By sd_snatcher

Prophet (3068)

sd_snatcher's picture

13-02-2015, 14:39

Guys, let's not forget the requirements and restrictions that the Yamaha engineers had to deal with. Mostly they had to reach some compromises:

1) Cost: The MSX was meant to be a low-cost home computer. Otherwise the expensive PC-88 (and later PC-98 & X68000) were already there at their market niche. It's easy to imagine an arcade-like game support combine to all computer video-modes. And then they would have arrived at saltier prices than the X68000 (because this was 1985, remember). And still, the very first MSX2 machines ended up being expensive. That slowed down it's adoption until the release of the Panasonic FS-A1, which was the 1st affordable MSX2 computer.

2) Silicon area used: This impacts both price and heat. Remember that the 1st version of the V9938 did run quite hot. And before it, the TMS9918 had overheating issues that are well documented everywhere.

3) It's a computer with some video-game capabilities. But it's still a computer and not a video-game. The Master System had great new sprites and pattern mode? Yes, but it had it's own compromises for that: If you think that the MSX VDPs had slow VRAM access for the CPU, you never programmed an SMS: you can only write on VRAM in VBLANK period. There's no available bandwidth when the raster is drawing the screen. And the chip ended up costing more than the V9938 just for that extra video mode & sprites.

With those restrictions in mind, I also have some considerations very similar to you. IMHO:

Clearly there was communication issues between the Yamaha team and the ASCII team. This is why the V9938 ended up with features that wasted silicon spaced and ended up not being fully used, or not used at all: Mouse, LightPen and ColorBus

a) The built-in mouse engine was a complete waste of silicon space and pins. I would easily trade that for horizontal scrolling and sprite flipping

b) The LightPen support was a great idea for the time, but then the blame is on the ASCII side, who had the stupid idea to adopt the Sanyo MSX1 cartridge as the standard. But it doesn't work properly on MSX2 modes without tweaking. ASCII should have just standardized a LightPen connector (since it was all that was needed), and then it could have been used for both business (lightpen) and games (decent lightgun support just like the SMS, without the white squares showing up).

c) The ColorBus was a fantastic idea. But then ASCII decided to bury it inside the computer. It should have had a standardized connector for it, or even better some extended pins in the slot to support it, in ISA vs 8bit-XT slot fashion.

d) Sprites could have been a bit better without that much extra silicon being used:

d.1) They should have their own palette set, like the SMS

d.2) Hardware flipping, as already mentioned. Programmers clearly had nightmares to create platform games like KV2, or top-down games like MG2 because of this sprite issue. On KV2-MSX2, the rockman death animation was the same as the other enemies because they had used all sprite entries with flipped images. On MSX1 it had it's own animation, because the single color sprites use less entries.

d.3) There's a wasted byte in the pattern name table that was originally used for the sprite color on MSX1. On sprite mode-2, it should have been used for the sprite effects, like flipping, plane priority and even to select mode sprite sets.

d.4) The stupid line-216 feature to disable the lower priority sprites should never had existed. Not only this feature isn't useful on the MSX2, as it causes problems to the vertical scrolling games.

e) The status register reading mechanism was clearly implemented by someone without any Z80 programming clue. It wastes a lot of CPU time. Important bits are all shuffled over the registers #1 and #2 without any clear grouping by function. The multiplexed status register selection is slow and causes a lot of programming headaches. They should have been organizing like this:

Status register #0: The same as TMS9918, for compatibility
Status register #1: Raster and blitter related bits:
bit7=HR
bit6=VR
bit5=EO
bit4=FL
bit3=
bit2=
bit1=CE
bit0=FH
Status register #2: Would receive the missing bits not mentioned on R#1 above
Status registers #3 to #9: could be the same

And then the status registers reading mechanism should be more straightforward, like this:

Reading VDP port #0: Always returns status register #0, like the TMS9918.
Reading VDP port #2: Always returns the status register #1
Reading VDP port #3: Returns the status register selected by R#15

But this is all some dreaming about something that never happened. The hardware is there for 30 years, and complaining about the design issues will only generate futile frustration. We have to deal with its restrictions and take the better of it, just like Pointless Fighting! Smile

By l_oliveira

Hero (526)

l_oliveira's picture

13-02-2015, 15:06

The SMS VDP bandwidth issue, I know why it is like that:

The lower 8 address bits of the VRAM BUS are multiplexed with the data lines (to save pins on the VDP package) even though the RAM chips are parallel PSRAMs.

So it ends having the exact same performance as DRAMs would have. As you have to spend two cycles to "charge" the latches inside the PSRAM chip with the address data before you can engage into the actual data transfer, the SMS VDP only work with the NEC PSRAM chips it's designed to work with (or you have to use a solution similar to what SUPERSONICS did on their Franky and PlaySoniq carts: use latches to make SRAMs usable).

By erikd

Master (255)

erikd's picture

13-02-2015, 20:03

l_oliveira wrote:

I'm 1000% sure a SMS VDP would work just right as a VDP in a MSX1 computer if mapped at the right I/O port.

Yeah you're right and I was wrong actually. I made an SMS emulator a long time ago and I only emulated the SMS-specific screen mode, which somehow led me to remember the old screen modes to somehow not exist oO

By l_oliveira

Hero (526)

l_oliveira's picture

13-02-2015, 20:08

erikd wrote:
l_oliveira wrote:

I'm 1000% sure a SMS VDP would work just right as a VDP in a MSX1 computer if mapped at the right I/O port.

Yeah you're right and I was wrong actually. I made an SMS emulator a long time ago and I only emulated the SMS-specific screen mode, which somehow led me to remember the old screen modes to somehow not exist oO

I happen to know why you were confused about this... Actually the Mega Drive is compatible with Master System specific modes but it abolished support to legacy TMS9918 video modes. So while it can play SG-1000 Mark-III and Master System games, it cannot play legacy SG-1000 and SG-1000 Mark-II games as those are for TMS9918 VDP.

So that's actually a source of confusion. You likely read about that somewhere and thought of it.

By erikd

Master (255)

erikd's picture

13-02-2015, 20:27

@sd_snatcher
That's some impressive in-depth knowledge there, very interesting Smile
I never knew the SMS' VDP was more expensive. It's a bit surprising actually, since the V9938 doesn't strike me as less capable; just not very focused on gaming features and with some strange design choices.

Home computers were mostly used for games, and the MSX was competing with the likes of the C64 (a more capable machine than MSX1 in many ways, at a similar price-point). While MSX being a standard was a great idea with many benefits, I suppose it came at the cost of not having bespoke proprietary chips, but sort of using off-the-shelf parts instead.

Quote:

The hardware is there for 30 years, and complaining about the design issues will only generate futile frustration. We have to deal with its restrictions and take the better of it, just like Pointless Fighting!

Well I'm not complaining; more like entertaining the thought of possible 'what if' scenarios. The MSX was great for what it was; great memories there Smile

By PingPong

Prophet (3447)

PingPong's picture

13-02-2015, 20:30

Sandy Brand wrote:

That doesn't explain the lack of proper horizontal and vertical scrolling though.

Vertical scrolling is best that on most other platforms, because it is circular, allowing lighter cpu load.
Horizontal scrolling is not on v9938
on TMS there is nothing.

By erikd

Master (255)

erikd's picture

13-02-2015, 20:32

l_oliveira wrote:

So that's actually a source of confusion. You likely read about that somewhere and thought of it.

You're right again! Smile
Although I didn't emulate the Mega Drive, I did read a lot about all these machines at the time and intended to emulate the MD at some point as well. And this tidbit about the MD VDP missing screen modes probably stuck...

By PingPong

Prophet (3447)

PingPong's picture

13-02-2015, 20:32

erikd wrote:
PingPong wrote:

the problem with v9938 is that had to be compatible with crappy msx1 vdp.
sprites with limitations in colors are the perfect example of this.

Sega Master System's VDP was based on the TMS9918 (although not compatible), and that had proper sprites and scrolling.

Based?
in the sense it is compatible. the sms vdp is another beast, electronically and from the point of view of architecture.
SEGA revised heavily the SMS VDP, mode 4 and sprites are a clear example of this.

By l_oliveira

Hero (526)

l_oliveira's picture

13-02-2015, 20:39

One comment:

Yamaha made the V9938 in the period span from 1983 through late 1984. V9938 was the first VDP they ever made and the "weird design choices" were actually hardware based acceleration for Nishi's idea of running Windows 1.0 on the MSX. Of course Nishi knew of Gates' idea about a GUI and Nishi wanted to make sure MSX2 could run it without rely heavily on the (slow) CPU it had at the time.

So SEGA developed their first TMS9918 derivative (SG-1000 MK2) VDP in 1984 and while it's still mostly a standard TMS9918 it now have the TI SN76489 (DCSG) chip built in along with most of the SG-1000 glue logic. That was a cost reduction move but it paved the way for the next step, the SG-1000 Mark-III which is the VDP we saw in the Franky cartridge.

Page 5/6
1 | 2 | 3 | 4 | | 6