(classic) Sony SMC-70/SMC-777

Post Reply
User avatar
dom
Well known member
Posts: 2072
Joined: Sun Jul 15, 2007 10:01 pm

(classic) Sony SMC-70/SMC-777

Post by dom »

I've just merged initial support for this machine, I've still got a few more features to add, but so far we've got:

* Gencon switchable between 40x25 and 80x25. There's redefinable font and UDGs as well
* Lores graphics support
* PSG support

Although I've only tested on CP/M, in theory the -lsmc777 library should be able to be used under S-OS as well.

appmake has been updated to support creating a disc in the appropriate format.
User avatar
RobertK
Well known member
Posts: 347
Joined: Mon Feb 26, 2018 12:58 pm

Post by RobertK »

My game H-Tron now supports the SMC-777 in CP/M mode. I will also make a native version as soon as z88dk supports creating native boot disks.

Image

Since today's nightly, the created .dsk file can be read correctly with the current Takeda emulator version (previously we had to use an older version from December 2017).

Can anyone please do some testing with the SMC-70 Takeda emulator (smc70.exe)? It should be compatible with the SMC-777, but neither Dom nor I have roms for that system.

P.S. So far I didn't notice any side-effects with the introduction of zsdcc 3.8.5 r10892.
stefano
Well known member
Posts: 2137
Joined: Mon Jul 16, 2007 7:39 pm

Post by stefano »

I thought that the nighty build failed, are you sure you haven't worked on the last good build?
User avatar
RobertK
Well known member
Posts: 347
Joined: Mon Feb 26, 2018 12:58 pm

Post by RobertK »

I have tried the new hires graphics modes, they work fine, but: when I switch to mode 4, draw some graphics and then return to mode 0, the graphics stays on the screen, even after clearing the screen by calling printf("%c",12); and printf("\x0c");
A clg() call does not help either.
How can I remove the graphics output from the screen?
User avatar
dom
Well known member
Posts: 2072
Joined: Sun Jul 15, 2007 10:01 pm

Post by dom »

Yes. It?s slightly odd having different screens for text and graphics. I?m genuinely not sure how we should make things work but at the moment the graphics planes are only cleared when in graphics mode.

So in your case either switch to a graphics mode before switching or text or call cls when in graphics mode before switching to text mode.
User avatar
RobertK
Well known member
Posts: 347
Joined: Mon Feb 26, 2018 12:58 pm

Post by RobertK »

Ah, no problem - now I'm clearing the screen before switching back to text mode, and everything is fine.

One final question: after switching back to text mode for the first time, the screen background has turned black. How can I return it to the standard blue background of the SMC-777?
Or can I set it to black at the beginning? By changing to graphics mode and then to text mode, or is there some better way?
User avatar
dom
Well known member
Posts: 2072
Joined: Sun Jul 15, 2007 10:01 pm

Post by dom »

I think I set the background colour to black by default - I?ll change it to cyan so the problem goes away.

At the moment however just call textbackground() with a colour name from conio.h prior to a cls in graphics mode.
User avatar
RobertK
Well known member
Posts: 347
Joined: Mon Feb 26, 2018 12:58 pm

Post by RobertK »

But the current CYAN colour is different from the SMC-777 default background colour, which is much darker and closer to blue.

So I tried to turn everything black on startup, but textbackground() seems to behave strangely: when called in text mode, it shows no effect, but as soon as you switch to graphics mode, the colour change takes effect (where you wouldn't expect it).

That's of course not a big problem, but maybe you can fix that without much effort.
User avatar
dom
Well known member
Posts: 2072
Joined: Sun Jul 15, 2007 10:01 pm

Post by dom »

I've now mapped all 16 colours as best as I can (limitations of the palette and my eye cones), the "default" background colour of the machine is now available under LIGHTCYAN (or code $c if you're compiling with CLIB_CONIO_NATIVE_COLOUR)
User avatar
RobertK
Well known member
Posts: 347
Joined: Mon Feb 26, 2018 12:58 pm

Post by RobertK »

Thanks, I'll try it when we get a new build (last night's build failed unfortunately).
User avatar
dom
Well known member
Posts: 2072
Joined: Sun Jul 15, 2007 10:01 pm

Re: Sony SMC-70/SMC-777

Post by dom »

It's been a while since any work explicitly for the SMC was done. However thanks to the way the libraries build, it turns out that this target gained PSGlib support a while back so tracker tunes and sound FX can be shared with the Coleco and SMS (and other targets).

Additionally, the target is now "first class" and +smc777 is now available. With this option, auto-booting discs are created that do not require the booting of CP/M or S-OS.
User avatar
RobertK
Well known member
Posts: 347
Joined: Mon Feb 26, 2018 12:58 pm

Re: (classic) Sony SMC-70/SMC-777

Post by RobertK »

Thanks for the +smc777 support, everything is working correctly there, except for one thing: there is some problem with floating point calculations, which affects only native disks but not CP/M disks. Attached is a sample program that creates both versions.
You do not have the required permissions to view the files attached to this post.
User avatar
dom
Well known member
Posts: 2072
Joined: Sun Jul 15, 2007 10:01 pm

Re: (classic) Sony SMC-70/SMC-777

Post by dom »

That should be sorted now - we weren't included the file that takes all the pragma overrides/printf autodetect results.
Post Reply