Changes

Jump to: navigation, search

Multiface II

9,752 bytes added, 14:57, 8 May 2021
==Revision History==
Strictly speaking, the device we all know as ‘the Multiface’ was in fact the Multiface Two – something that confused Amstrad Action no end. The original version (the Multiface One, if you like) was in fact a Spectrum peripheral. Romantic Robot later applied the concept to the Amiga and the ST [[Category:Hardware]] with very little success, as games for these platforms were inevitably multi-loads. They now make their living selling classical CDs. Funny old world.
Needless to say, this concept of a ‘universal backup (oh, ok, piracy) device’ worried software houses no end, and there were no end of rumours that the Multiface and its ilk would be banned under the Copyright & Patents Act of 1990. In the end, all that happened was that Romantic Robot got the chance to run ‘Buy now! before it’s banned’ adverts, provoking lots of panic sales. They then continued to sell the Multiface. Several years later, they tried the same trick with ‘The CPC is no longer a viable platform – so we’re selling off our last Multifaces!’. This supposed last shipment lasted about two years.
 
The Multiface III is a version for the Spectrum +3.
 
==Multiface 2 revisions==
 
There was more than one revision of the Multiface 2 for the Amstrad:
 
* 1st version which has a manual switch to control visibility to software - first appeared in Amstrad action 16 (January 1987)
 
In Amstrad Action issue 23 it mentions some incompatibility with some CPC6128 machines and there are some dipswitches which can be configured to work with it. Multiface 2's with this have version 78 software.
 
* 2nd version which has an automatic switch controlled by PAL ICs to control visibility to software. This is called "2+" by Romantic Robot. It was mention in Amscene in Amstrad Action 33 (June 1988) and was first advertised in Amstrad Action issue 36 (September 1988).
 
* 3rd version which was the same as the 2+ but had a Centronics connector and ROM modified to work with the Amstrad Plus. This ROM doesn't work on the CPC.
 
Was there a version which didn't have a switch and came before version 1?
==Anti-Multiface==
Any CPC program can find out what’s in memory at the moment. It’s the PEEK command in BASIC, and the very foundation of machine code. You, too, can save the contents of memory to disc just with the following line:
OPENOUT "filename" : FOR n=0 TO 65535 : PRINT#9,CHR$(PEEK(n)); : NEXT : CLOSEOUT
Needless to say, the Multiface did just that (except written in machine code). If I could get £40 for that one line of program, I’d be smiling.
All of these settings are saved on disc as part of your backup. So when you load the Multiface-saved copy, it knows exactly how to set up each chip.
 
== Technical ==
 
There were various revisions of the Multiface 2:
 
* There was a version which was visible to software all the time. (Did this exist?)
 
* One version had a "invisibility" switch on the front in addition to the stop and reset buttons. When switched in one direction the multiface was invisible to software and in the other it was visible. ''Is there a dump of the ROM from this version?''
 
* Last revision had an automatic "invisibility" switch internally controlled by the hardware itself. After reset the multiface was visible, but when the stop button was pressed and then control was returned to the running program it would be invisible and would remain invisible until the computer was reset.
 
The following applies to the automatic "invisibility" version (the "2+"):
 
If the multiface 2 is visible you can enable/disable the ROM and RAM in the CPU's address space:
 
To make the ROM and RAM visible to the CPU:
 
* Enable lower rom using port 7fxx as normal
ld bc,&7f89
out (c),c
* Then activate the ROM and RAM:
ld bc,&fee8
out (c),c
 
* To deactivate the ROM and RAM:
ld bc,&feea
out (c),c
 
Testing shows the port is decoded as: ‭11111110111010ex
x means any value for this bit
e is 0 for enable and 1 for disable.
 
ROM is visible in the range &0000-&1fff. (including [[NMI]] vector at 0066h). Writing to the ROM doesn't write through to CPC's RAM.
RAM is visible in the range &2000-&3fff. Writing to the RAM doesn't write through to CPC's RAM.
The internal ROM/RAM at 0000h-3FFFh in the CPC being disabled.
 
You can write to *ANY* byte of the RAM including those which store the hardware state.
 
The Multiface 2 listens to Gate-Array and PAL writes (port 7fxx), CRTC writes (bcxx and bdxx) and 8255 Control port writes (f7xx).
 
Gate-Array and PAL are decoded as ‭01111111xxxxxxxx,
CRTC as ‭10111100xxxxxxxx and ‭10111101xxxxxxxx and
8255 writes as ‭11110111xxxxxxxx.
 
When the I/O write is detected, then specific locations in the MF2 RAM are updated immediately.
 
Gate-Array pen index write (7fxx with bit 7=0 and bit 6=0): 3fcf
Gate-Array border colour write (7fxx with bit 7=0 and bit 6=1): 3fdf
Gate-Array pen colour write (7fxx with bit 7=0 and bit 6=1): 3f90-3f9f (pens 0 to 15)
Gate-Array mode write (7fxx with bit 7=1 and bit 6=0): 3fef
PAL write (7fxx with bit 7=1 and bit 6=1): 3fff
CRTC register select write (bcxx): 3cff
CRTC register data (bdxx): 1db0-1dbf (only registers 0-15, others are ignored)
8255 Control port write (f7xx): 37ff
 
The value that is stored is the value written.
 
The automatic switch version of the multiface works by monitoring opcode reads from 0064 or 0065 (for returning back to the stopped program) and 0066 and 0067 for entering multiface 2 ROM when pressing the stop button. There is a single call to 0065 (which has a RET) before the multiface 2 returns control back to the running program. The multiface 2 uses the stack inside the running program to return. It's not possible to activate the multiface ram and rom and call 0064/0065 directly - it has no effect, the multiface 2 must be in a specific state (which happens when the stop button has been pressed) to accept the call and make itself invisible.
== Toolkit ==
Once the machine was reset, you could save all the program to basic doing:<br>
OUT&nbsp;&amp;7fc4,&amp;c4: save "game-1",b,&amp;4000,&amp;3fff  OUT &amp;7fc5,&amp;c5: save "game-2",b,&amp;4000,&amp;3fff<br> OUT &amp;7fc6,&amp;c6: save "game-3",b,&amp;4000,&amp;3fff<br> OUT &amp;7fc7,&amp;c7: save "game-4",b,&amp;4000,&amp;3fff<br><br>
This trick was used to save heavily protected games to disk.<br>
* [[Soundhakker]]
* [[Tearaway]]
* [[The Insider]](a Multiface II tool from Romantic Robot themselves)
* [[TUSS (The Ultimate Sprite Searcher)]]
== Manual ==
* [http[Media://wwwMultiface 2 Manual.cpcwiki.eu/manuals/pdf|MF2 User Manual]] {{EN}} {{PDF}}* [[Media:Multiface%202%20ManualTwo User Manual.enzip|MF2 User Manual.rar zip]]* [[Media:Multiface II Two User Manual.txt|MF2 User Manual.txt]]
== Pictures ==
<gallery caption="MultifaceII"> Image:multiface.jpg|Multiface closeupImage:Multiface II advertisment.jpg|AdvertismentAdvertisementImage:MultifaceII AA100.jpg|Advertisement in AA 100Image:Amstrad Action106 20.jpg|AA Issue 106 - Page 20Image:MultifaceII_Front.jpg|Multiface II - (version with switch for making it invisible to software) - Front (eBay)Image:MultifaceII_Back.jpg|Multiface II - (version with switch for making it invisible to software) - Back (eBay) 
</gallery>
<gallery caption="Multiface II - Amstrad 464 / 6128 Plus compatible version"> Image:S-l1600.jpg|Original boxImage:S-l1600b.jpg|Original box - Other sideImage:S-l1600c.jpg|Original box - OpenedImage:S-l1600d.jpg|Multiface II in original box with manualImage:S-l1600e.jpg|Multiface II with 50way Centronics ConnectorImage:S-l1600f.jpg|Multiface II with 50way Centronics Connector - SideImage:S-l1600g.jpg|Multiface II with 50way Centronics Connector - Back </gallery> All thanks to rockrabilia from eBay for using his pics taken from his [http://www.ebay.co.uk/itm/391986980297 '''Amstrad 464 6128 Plus - Romantic Robot MULTIFACE TWO Interface *Boxed *Tested!'''] auction. <gallery caption="Multiface II Layout, thanks to Jose Leandro"> File:Multiface II - Top.jpg|Multiface II - TopFile:Multiface II - Bottom.jpg|Multiface II - BottomFile:Multiface II - Components.jpg|Multiface II - ComponentsFile:Multiface II - Tracks.jpg|Multiface II - TracksFile:MF2-PCB Front.png|Multiface II - PCB FrontFile:MF2-PCB Back.png|Multiface II - PCB BackFile:MF2-Layout.png|Multiface II - Layout </gallery> == Downloads == * [Category[Media:MF2 (Jose Leandro).zip|MF2 (Jose Leandro).zip]] (With all the PAL decoded) There are at least 3 firmware versions. The year & checksum can be displayed by pressing f0 on numeric keypad (within the multiface toolkit main menu). The checksum is calculated by XORing all bytes in the ROM with each other. Original AMSDOS: * [[Media:Multiface.two.romantic.robot.86.zip|MF2 86 ROM]] - (1986, chksum=86h)* [[Media:Multiface.two.romantic.robot.3e.amsdos.v05.zip|MF2 3E ROM]] * [[Media:Multiface.two.romantic.robot.0e.zip|MF2 0E ROM]] - (1988, chksum=0Eh)* [[Media:Mf2_7c.ROM|MF2 7C ROM]] - (1988)* [[Media:Multiface.two.romantic.robot.78.amsdos.v05.zip|MF2 78 ROM]]* [[Media:Multiface.two.romantic.robot.8d.amsdos.v05.zip|MF2 8D ROM]] - (1988) For the Amstrad Plus series: * [[Media:Multiface.two.romantic.robot.8b.zip|MF2+ 8B ROM]] - (1990, chksum=8Bh)* [[Media:Multiface.two.romantic.robot.78.amsdos.v07.zip|MF2+ 78 ROM]]* NOTE: 8B seems to be correct. They differ in 1 byte at address 0. On 8B it is DI on 78 it is NOP. 78 could be a bad dump. The Source Code: * [[Media:Vortex_MF2-Source_TFM.rar]] Differences between chk=86 and chk=0E versions are unknown. The chk=0Eh and chk=8Bh versions are almost byte-identical, they differ only by some bytes related to the new AMSDOS version used in CPC Plus system cartridge (aside from the new AMSDOS version, there is no support for CPC Plus related features, like handling the new ASIC registers). You can find more versions (and more info, besides) over at the [http://www.grimware.org/doku.php/documentations/expansions/mf2/start Grimware site] ==Remake== A project was begun to remake the multiface (by Giants of cpc-hardware on 2005) :  > Interface disassemble > First typhon > First decoding via H/W counter the Equation Of PALs > A lot of pictures, informations H/W > indicate all pins connections.  Jeff(hxc) was join the projet and make a big profesional work :  > Dump 2 pals  > Dump of the EPROM.  > Decoding equations  > Writing a test tool for the verification of these equations with real pal  > Implementation of the scheme Multiface 2.     Details are [http://sasfepu78.fr/index.php/12-divers/20-multiface-2-cpc-6128-old here] (in French). For posterity, all the information and files from that page have been gathered and are available in this zip file: * [[Media:MF2.zip|MF2.zip]]. The reverse engineering of the multiface II is not quite complete, in that two versions of one of the PAL chips are apparently in the wild, and only one has been reverse engineered, and that one not completely. It's unclear what the newer version of the PAL chip is for, but CPC+ support would seem likely. Until the PAL chip is decoded, there is not enough information to complete the remake. Now, thanks to Jose Leandro, the hardware specialist of the spectrum, with his famous page : http://trastero.speccy.org/cosas/JL/JL.htm We can know more about this hardware, all the PAL chips are decoded: * [[Media:MF2 (Jose Leandro).zip|MF2 (Jose Leandro).zip]] (With all the PAL decoded) ==Links== * [http://www.cpc-power.com/index.php?page=detail&num=4971 ''Multiface II'' from CPC-Power]* [http://cpcrulez.fr/hardware-interface_debug-multiface_2.htm ''Multiface II'' from CPCrulez]* [http://hardware.speccy.org/temp/Amstrad-multiface2.html ''Multiface II'' from hardware.speccy.org]* [http://hardware.speccy.org/temp/Amstrad-multiface2/Amstrad-multiface21.html ''Multiface II PALs'' from hardware.speccy.org]* [https://web.archive.org/web/20160715092459/http://www.grimware.org/doku.php/documentations/expansions/mf2/start ''Multiface II'' from grimware]* [https://web.archive.org/web/20090108031853/http://cpc-hardware.com/sections.php?op=viewarticle&artid=31 ''Multiface II'' from CPC-Hardware]* [http://quasar.cpcscene.net/doku.php?id=dossier:mf2 ''Multiface II'' from Quasar Net] (french, memory mapping details and programmation tutorial and examples) [[Category:Peripherals]] [[Category:Manual]] [[Category:Copy Protection]]
194
edits