News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Amstrad CPCnext: Would you buy one?

Started by cwpab, 20:29, 31 December 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Do you wish there was an Amstrad CPCnext?

Yes, and I would buy it
25 (45.5%)
Yes, but I would not buy it
2 (3.6%)
No, that wouldn't be an Amstrad CPC
27 (49.1%)
I would prefer a PCWnext
1 (1.8%)

Total Members Voted: 55

GUNHED

#125
Here my English text of the Nova expansion:

Nova - English
==============

Nova nvRAM and Real-Time-Clock expansion
========================================
Shinra HP : https://pulkomandy.github.io/shinra.github.io/nova.html
Wiki-Forum: https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/nova-nvram-rtc-for-amstrad-cpc-latest-news-from-pulkotronics/
SchemaNova: http://pulkomandy.tk/drop/nova_cpc_nvram.pdf
PulkoMandy: https://pulkomandy.tk/drop/

Technicals
==========
This interface includes 32KB of NVRAM and a real-time-clock
(because NVRAM chips have that).

nrRAM/RTC chip: M48T35Y-70MH1F.
The yellow chip itself tells: ST9906, M4T28, BR125H1
This is the M4T28 BR125H1 battery with 4 pins. Clickable.

Port
----
The interface uses port &FE82 for mapping the NVRAM in and out.
It is possible to map it at any multiple of &2000.

Decoding and Programming of the Nova
====================================
Base address of the nvRAM
-------------------------
The high 4 bits determine the base address of the nvRAM.
Bits 7, 6 and 5 select the RAM address. Bit 4 is set to 0.

 OUT &FE82,&0x   / to map at &0000-&1FFF
(OUT &FE82,&1x) /
 OUT &FE82,&2x   / to map at &2000-&3FFF
(OUT &FE82,&3x) /
 OUT &FE82,&4x   / to map at &4000-&5FFF
(OUT &FE82,&5x) /
 OUT &FE82,&6x   / to map at &6000-&7FFF
(OUT &FE82,&7x) /
 OUT &FE82,&8x   / to map at &8000-&9FFF - \ used for FutureOS
(OUT &FE82,&9x) /                           \OUT &FE82,&8B
 OUT &FE82,&Ax   / to map at &A000-&BFFF
(OUT &FE82,&Bx) /
 OUT &FE82,&Cx   / to map at &C000-&DFFF
(OUT &FE82,&Dx) /
 OUT &FE82,&Ex   / to map at &E000-&FFFF
(OUT &FE82,&Fx) /

The enabled NVRAM replaces 8KB of RAM/ROM with its own contents.

Select the 8 KB block of nvRAM
------------------------------
The low 4 bits select the 8KB page.
Bits 3(=1), 1 and 0 do the selection actually.

OUT &FE82,x8 ' map the first  8 KB page
OUT &FE82,x9 ' map the second 8 KB page
OUT &FE82,xA ' map the third  8 KB page
OUT &FE82,xB ' map the fourth 8 KB page (contains RTC)

Switch nvRAM off
----------------
Any other value for the 4 low bits unmaps the NVRAM
and restores the normal RAM or ROM behavior.
Examples: OUT &FE82,&FE or LD A,&FE:OUT (&82),A


Real-Time-Clock
===============
In the fourth page, the last 8 bytes are not normal RAM.
They can be used to read / write the time from the realtime clock.
In the other pages 1-3 there is only RAM.

All values are in BCD format (4 bits for tenths, 4 bits for units)
The data of the RTC can always be read.

Access to the RTC works this way
--------------------------------
Using OUT &FE82,&6B, interface mapped at &6000-&7FFF:

To read the time
----------------
POKE &7FF8,&40  'stops RTC->nvRAM update / write '1' to Read bit 6 (x1xx xxxx)
        'However, looks like this command is usually not needed

year    = PEEK(&7FFF)
month   = PEEK(&7FFE)
day     = PEEK(&7FFD)
weekday = PEEK(&7FFC)
hour    = PEEK(&7FFB)
minute  = PEEK(&7FFA)
second  = PEEK(&7FF9)

POKE &7FF8,&00 \  nvRAM get updated from RTC again
                \ Write '0' to Read bit 6 (x0xx xxxx)

To set the time
---------------
POKE &7FF8,&80 'Stop RTC for writing data into it / '1' to Write bit 7 (1xxx xxxx)

POKE &7FFF,&21 ' year, for 2021
POKE &7FFE,&07 ' month, july
POKE &7FFD,&31 ' day, 31st
POKE &7FFC,&00 ' weekday, Sunday
POKE &7FFB,&15 ' hour
POKE &7FFA,&53 ' minute
POKE &7FF9,&12 ' second

POKE &7FF8,&00 'RTC picks up new data, start RTC / '0' to Write Bit 7 (0xxx xxxx)

Switch Nova RTC off - save power
--------------------------------
To stop Nova RTC function and save current a bit is set.
The STOP bit is the MSB of the seconds register.
Setting it to a '1' stops the oscillator.
The M48T35/Y is shipped with the STOP bit set to a '1.'
When reset to a '0,' the M48T35/Y oscillator starts within 1 second.

In our example this is: POKE &7FF9,%1xxx xxxx
This stops the Nova RTC and saves power.



Compare Nova RTC and FutureOS Time/Date variables
-------------------------------------------------
Second  = &9FF9 - Second  - UHR_SEK EQU &B95B
Minute  = &9FFA - Minute  - UHR_MIN EQU &B95C
Hour    = &9FFB - Hour    - UHR_STU EQU &B95D
Weekday = &9FFC - Weekday - UHR_WOT EQU &B95E
Day     = &9FFD - Day     - UHR_TAG EQU &B95F
Month   = &9FFE - Month   - UHR_MON EQU &B960
Year    = &9FFF - Year    - UHR_JAR EQU &B961


http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Cwiiis

Quote from: Anthony Flack on 11:40, 05 February 24I mean, don't think I haven't thought about it. I've thought about splitting colours in the background, and I've thought about multiplexing the bombs... I want to believe!

I think multiplexing the bombs is just too much and they will have to be printed to the background, or else expect some major sprite flickering to occur. I also would want to use two sprites to add extra colours to the top HUD. I think some limited colour splitting could be applied in mode 1, but there would only be one floating colour and you'd be limited to a few simple line splits. it's an open question whether that would look better or worse than a mode 0 background with accurate colour. The background is not so bad, but it is a bummer to see the bombs rendered chunky, because then you can see they are rendered to the background. There's enough sprites left over that the little 200 points indicators left behind when you collect a bomb could be sprites. All the other sprites should look nearly arcade perfect.

The Master System, since that's our benchmark, has enough sprites to cover all the moving objects, same as the GX. But they'd flicker more often with only four per line. It would also not have enough tile memory to display the backgrounds, and it would blow up the tile memory even worse if you hoped to print the bombs on top without square borders. Worse is that it doesn't have anywhere near the vertical screen resolution and might have to use a vertical scroll like they did for Ms Pac Man. I love the SMS but it is quite stubby, especially in PAL mode.

Also the AY sound chip in the CPC is the same as the arcade board (which admittedly does have three of them. Heck they sounded pretty great in Gyruss when they stacked five of them together). So ok, maybe your hypothetical CPC Next could have double sound chips. But even just one AY gets pretty close to the arcade sound and is better than the SN chip in the SMS which has no bottom notes.
If you're looking to have 3xAY, the PlayCity would do the job - that gives you another 2xAY and you can externally mix them with the onboard AY (or internally in a pre-Plus machine, but mono only I think?). If it's easy to gracefully fall back, might be nice to add support for it? Alcon 2020 did this, though the split of music and sound effects was an obvious one, but I'm guessing your game already blends the two so maybe not such an easy thing to add...

Re a Plus-enhanced port, I wonder if using sprites for all the moving components is actually the most effective use of them, given you already have great-looking 50Hz gameplay working? Perhaps it'd make (some) sense to use sprites for the platforms - it'd be very easy to multiplex in that case as they're mostly identical and you'd have 256 pixels wide worth of sprites per scanline, so they could easily fill the playfield. That could potentially remove some colour restriction elsewhere and give nice-looking platforms. Sprites could also be used for the UI, I suppose, enabling a few more colours/resolution there, and perhaps for bonus indicators - anything that doesn't need to change too often. Of course, this wouldn't ease the RAM burden and you'd end up with a port that runs on even fewer computers... But it'd run on my computer ;D

Anthony Flack

I don't think I could multiplex platform sprites and render software sprites at the same time... I already spend most of the screen time drawing. Interesting idea though. Always fun trying to think of how you can stretch the hardware around something.

It would not be difficult to split music and sound effects if I had access to more channels but I do not have any idea how to go about it and I don't have a PlayCity to test on. I'm just using Arkos Tracker for the sound and perhaps it supports it natively; I haven't looked into that. The first snag I'm likely to hit is that the memory bank that holds the music data and Arkos player is full all the way up to &3FFF so I'd have to shuffle a bunch of things around if the Arkos player got any bigger. 

Cwiiis

Quote from: Anthony Flack on 01:46, 14 February 24I don't think I could multiplex platform sprites and render software sprites at the same time... I already spend most of the screen time drawing. Interesting idea though. Always fun trying to think of how you can stretch the hardware around something.

It would not be difficult to split music and sound effects if I had access to more channels but I do not have any idea how to go about it and I don't have a PlayCity to test on. I'm just using Arkos Tracker for the sound and perhaps it supports it natively; I haven't looked into that. The first snag I'm likely to hit is that the memory bank that holds the music data and Arkos player is full all the way up to &3FFF so I'd have to shuffle a bunch of things around if the Arkos player got any bigger.

In case you consider giving it a go, programming info is here: https://www.cpcwiki.eu/index.php/PlayCity - It's supported in the CPCEC emulator (that also has a pretty decent debugger) and I suppose you could still purchase one from @TotO (?) if you wanted to test on real hardware. It probably wouldn't make a huge amount of sense to use all 9 channels, rather than using 6 of them - As I understand it, the Play2CPC (which is likely more common?) only provides another 3 channels, as opposed to another 6 like the PlayCity. The PlayCity is supported in Arkos Tracker 2, iirc.

Maybe hardware sprites replacing software sprites is the most obvious thing in that case, with bombs remaining software sprites, as you've suggested. There's more than enough time to update every hardware sprite frame over 3 or 4 frames and leave plenty of time for game logic. More colourful game sprites and a lower RAM requirement would be a nice little bonus for Plus/GX owners :)

I wonder if you could squeeze in EGX backgrounds with the time saved by not having to manage software sprites... That would certainly be ambitious and interesting... Failing that, perhaps a Paula's Potions style alternating background to get some more colours would be feasible...

Prodatron

Quote from: Anthony Flack on 01:46, 14 February 24It would not be difficult to split music and sound effects if I had access to more channels but I do not have any idea how to go about it and I don't have a PlayCity to test on. I'm just using Arkos Tracker for the sound and perhaps it supports it natively; I haven't looked into that. The first snag I'm likely to hit is that the memory bank that holds the music data and Arkos player is full all the way up to &3FFF so I'd have to shuffle a bunch of things around if the Arkos player got any bigger.
PlayCity is only supported by the MultiPSG-Version of the Arkos AKY-Player. AKY is a streamed-based music format similair to YM, which uses more memory than usual modules. If you already use the AKY-variant it should be easy to add PlayCity support.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Anthony Flack

I used AKG. No memory for AKY. A cartridge version would be a different story of course. I think the best thing for a Plus enhanced version would be a total rebuild. But obviously whole chunks of code could be copied straight across.

I am looking forward to playing with the Plus features and cartridge format when I actually have some time to do so. 

genesis8

PlayCity is also supported by Roudoudou's emulator : ACE-DL
____________
Amstrad news site at Genesis8 Amstrad Page

zhulien

Foe those with a Mega65, it really is a perfect machine for a great CPC core.  Unfortunately a CPC core isn't here yet.  Proce may out people off, 666 euros to me is ok... but sadly for me they charge a LOT for postage to Australia making it really expensive.  I still bought one and cannot praise the hardware enough.  Spectrum Next can also be a CPC but the keyboard isn't as nice as the Mega65.  If someone can make a Mega65 core? TOBIFLEX perhaps?  That would make a Mega65 a must have CPC if the core supports all the hardware...

Specs here
https://shop.trenz-electronic.de/en/TE0765-06-T001CK-MEGA65-highly-advanced-C64-and-C65-compatible-8-bit-computer

zhulien

Quote from: GUNHED on 14:15, 07 February 24BTW: About CPC and RAM-Banking you did forget to mention some feature...

8 KB of expansion RAM can be banked in at every multiple of &2000, this enhances banking quite useful! No other computer has that nice little gem. That's what I call Nova-Blast!  ;D :P :laugh:
I think multiface 2 does that

zhulien

Quote from: andycadley on 10:54, 02 February 24
Quote from: rexbeng on 10:31, 02 February 24
Quote from: Anthony Flack on 21:48, 30 January 24Over-simplifying a bit, but if you imagine that a 16 bit machine needs twice as much memory to deal with the equivalent amount of graphics and so on, an CPC with 64k is like an ST or Amiga with only 128k, and 256k is comparable to a stock Amiga 500. In reality, without audio samples to deal with or whatever else, 128k feels about right for the CPC, 64k is uncomfortably tight and 256k is luxury.
Hm. Isn't the Amiga even more hungry than the ST when it comes to screen memory consumption? I am under the impression that it spends 64k for graphics, whereas the ST stands at 32k. Can't seem to remember where I have read that info, but by quick referencing I see that the Amiga has 4x the on-screen colours per resolution compared to the ST...

The A1000 had 256k onboard ram, so if, say, 1/4 of that is reserved for graphics, then that would make it an exact 16bit equivalent to a 464. Has anyone made any games or demos for that one and only true Amiga, lately?

The Amiga can have 32 colours on screen as opposed to the ST's 16, so it's more like 40K if my maths is right. You could up that to 48K if you're using EHB (nobody does) or a Dual Playfield setup with 7 foreground and 8 background colours.

But anything for an 256K OCS Amiga is a bit rare, it's very tight for memory - a similar situation to the 464 for sure.
That must be an unexpanded Amiga.  These days Amiga 500s can have AGA and almost a gb of RAM

GUNHED

Quote from: zhulien on 19:11, 15 May 24
Quote from: GUNHED on 14:15, 07 February 24BTW: About CPC and RAM-Banking you did forget to mention some feature...

8 KB of expansion RAM can be banked in at every multiple of &2000, this enhances banking quite useful! No other computer has that nice little gem. That's what I call Nova-Blast!  ;D :P :laugh:
I think multiface 2 does that
No, MFace2 does exchange the lower ROM, 8 KB SRAM are banked in, BUT at a fixed address. And there are 8 KB used for MF2 ROM. It's different. 
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Powered by SMFPacks Menu Editor Mod