News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_MacDeath

ACID chip inside

Started by MacDeath, 13:52, 23 October 09

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

redbox

Quote from: Bryce on 13:15, 23 February 10
These people here - http://www.pixelspast.com/homebrew/ - supply empty cartridge housings for the Atari 2600/7800, I'm not sure of the exact dimensions, but they may fit close enough to be used and if not, maybe the company would be willing to produce a CPC+ cartridge housing if enough interest was there?

That's exactly the type of thing we need.  Good to know some scene cousins have been through the same thing before...!  :)

pepax

Quote from: Bryce on 13:15, 23 February 10
These people here - http://www.pixelspast.com/homebrew/ - supply empty cartridge housings for the Atari 2600/7800, I'm not sure of the exact dimensions, but they may fit close enough to be used and if not, maybe the company would be willing to produce a CPC+ cartridge housing if enough interest was there?
Bryce.
Unfortunately, the Atari cartridges are bigger than the CPC ones.

Bryce

But they may still be willing to make a CPC+ cartridge if they can get enough orders?

Bryce.

spybro

Quote from: Bryce on 10:20, 26 February 10
But they may still be willing to make a CPC+ cartridge if they can get enough orders?

Bryce.
i was wondering whether it is possible to make
a poll in order to see what is the general interest
and in time to make an order of many?(preorder prepay)
gryzor can be the receiver of them for greece and everybody who has claimed interest can pick it from him
and in the same way for france spain uk germany(καλα ρε την αφροδιτη της μυλου) with persons from each
country

MacDeath

#179
Before producing anything :

--Get a working chip solution (chip and cheap)...

--Get a design/blue print for the printed circuit.

--Then the casing is to be designed too.

Only after all this, can a production be started.


Also in my opinion, we should/could get 2 designs :

--A cartridge with external Eprom socket (and external jumpers for the LKs) : a simple multi Eprom Cartridge to burn existing abandonware games, OS and so on.

--A 2-part cartridge : part 1 with pseudo-ACID and a socket/port for part 2, with only Eprom and LKs.

a 2-part cartridge would allows to sell New games at a cheaper price, as only the 2nd part is needed then.

But the feasability would depend of the basic cost of the pseudo-Acid and the rest...


spybro

the cost is relevant to the demand
it is totally different to print 1 pcb than making 50
having a poll here in the wiki we can see the rate of interest

i know that you guys just started with the making of a homebrew cartridge and i wish i had
more knowledges in order to speed things up
i believe that every cpc+ user is eager to put his hands on this kind of  hardware
after all
we waited for 20 years

MacDeath


Nilquader

Have you ever checked the supply voltage on the CPC+ Cartrdges? On my GX 4000 there is only 3.5V and that's not enough to power the (fake-ACID) Xilinx XC9500 CPLD. I could get complicated if the CPC uses 5V, and the GX4000 only 3.5. But if this is the same on the CPC+ we could use cheap 3.3V components. (ie the XC9536xl which is about 1.80 Euro)
--
Nilquader of SPRING
http://www.nilquader.net/

nocash

That's unexpected... are you really sure it's 3.5V? I don't have a cpc+ nor gx4000, but according to the schematics, http://cpcwiki.eu/index.php/Schematics, both are clearly connected directly to 5V.

If the schematics aren't totally wrong... did you measure the correct pin? Amstrad is using different pin-numberings, 1..36 back and forth, sometimes straight ordered, and other times zig-zag ordered, and other times A1..18 and B1..18. And are you using the original power supply? No problem if you are using something else, but if it doesn't have enough amperes, then its 5V may drop to 3.5V or so.

Cu, Martin

nocash

Moment...! Did you just said you have a GX4000, and know something about electronics? That'd be a big step in the history of the console :-) now please say you do have an oscilloscope - do you?

The /CE timings are still totally unclear. I could probably test the /CE handling on the ACID side, but it'd be helpful to see what signals are output by the console. A photo of the oscilloscope showing /CE and CLK signals together would be great (or screenshot, if it's a modern digital scope).

Picture showing CLK and CCLR when NO cartridge inserted would be great, too.

Picture showing CLK and SIN with cartridge inserted would be nice - though that already exists, at http://amstradcpc.mforos.com/305097/7723493-que-hace-exactamente-el-chip-acid-de-los-cartuchos/?pag=5

Finally, best thing ever would be CLK and SIN and CCLR with cartridge inserted in one picture, triggered on CCLR. Though you'd sorts of need 3-inputs on the scope, plus CCLR is probably sent only once at power-up, so it may be difficult to trigger it.

spybro

is there anyone outhere working on any kind of prototype?it has been awfuly  quite in here. 
   
   
 

arnoldemu

Quote from: spybro on 22:42, 04 May 10
is there anyone outhere working on any kind of prototype?it has been awfuly  quite in here. 
   
   

nice avatar pic. Got any that say "Asic inside" in the same style?
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

spybro

the only one i could find for you is this one




Nilquader


Quote from: nocash on 17:57, 07 March 10
The /CE timings are still totally unclear. I could probably test the /CE handling on the ACID side, but it'd be helpful to see what signals are output by the console. A photo of the oscilloscope showing /CE and CLK signals together would be great (or screenshot, if it's a modern digital scope).


Picture showing CLK and CCLR when NO cartridge inserted would be great, too.


Do we really need a scope for that job? All the signals should be TTL level, so we could use a logic analyzer to watch all the relevant signals at the same time. I think the spanish people already did a lot of analyzing with and without ACID.


I already tried to write some Verilog code to simulate the ACID, but it doesn't work yet. There are still some timing issues and I had not enough time for this in the last months. I should probalby rewrite it in VHDL so that other europeans are able to read the code ;-)





--
Nilquader of SPRING
http://www.nilquader.net/

Octoate

Quote from: Nilquader on 15:20, 27 May 10
I already tried to write some Verilog code to simulate the ACID, but it doesn't work yet. There are still some timing issues and I had not enough time for this in the last months. I should probalby rewrite it in VHDL so that other europeans are able to read the code ;-)
I finished my implementation of the ACID in VHDL some time ago, but have no time to test it and currently no logic analyzer. During implementation I also talked to our hardware department of my company which helped me a lot to prevent the mistakes of a novice :). If you are interested in my implementation of the ACID I can send it to you!
--

nocash

> Do we really need a scope for that job?
Doesn't matter what tools you are using. The problem is that most CPC+/GX4000 owners don't have any tools ar all.

The pics in the spanish forum are showing a LOT of signals, but unfortunately not the ACID signals (don't ask what they have been doing there, and why they did do it, I've no clue).

Grim mentioned that he measured the ACID signals some weeks ago - and said he'd release the results "soon" - I hope that means soon :-)

---

> If you are interested in my implementation of the ACID
Would like to see what you made of it, too!

MacDeath

#191
Hi, my brother just got a microcontroller programator...
He told me that a microcontroller could most probably be programmed to emulate an ACID chip...

We are to try this, so I would need all stuff we may know on the ACID.

Has one of you done some sort of PDF compilation of all the Datas we have on it ?

From what I saw, a microcontroller runs with +5V but also can run with less, and can get a clock even superrior to 4mhz.

Yet some of them are not that expensive actually...getting the pseudo ACID at even 10€uro could be good enough for a production of MultiEeprom cartridges or even original games as GX4000collectionners may be eagier to buy those for even 50€uros or more...



The aim would be to do a breadboard prototype running an amstrad PLUS...
With the hope I won't burst a nut to one of my beloved computer...lol...


Also I would like to ask anyone :
--What kind of component would you suggest otherwise ?
--Do you have an idea of the cost for printing some cards ? I thing a big sprue with many cards on it, just needing to be cut...Perhaps asking to some universities or schools as they sometimes subcontract small productions too (as it may have a pedagogic value) ? or simply have the equipment needed.

If the Breadboard prototype works, I may need someone to design me the printed circuit.

Concerning the boxing, I will have to craft some sort of mould myself, of find suitable casings but this is the last part too as we first need to have the working complete circuit to design the case on this.

but the first step : getting za proper erzatz.

MacDeath

#192
Ok..I discussed a bit with my brother.


So from now, we have 2 projects.

--Reprogrammable Cartridge.

--Joystick Adapter.


Reprogrammable Cartridge :

Would be an Amstrad PLUS cartridge with an additionnal DB9 port.
It would contain a Micro-controller and a 512K flash memory.
What we aim at :
-You plug the DB9 port on a PC : the Microcontroller is in programmable mode : you can put anything you want in the Flash/ROM...
-You plug the Card-edge on an Amstrad PLUS (GX4000) : the Microcontroller emulates the ACID and the Flash memory acts as a ROM.

Perhaps some jumpers for the LKs... yet specially designed PLUS Softwares or modified existing GX4000 ROMs may be a proper solution to avoid those...

So  our first steps will be to :
--analyse a bit more the ACID to verify stuffs.
--Programm a microcontroller to emulate an ACID properly.
--Try a breadboard prototype...and compare both components so they react the same.

Advantage of such system : No need to have an EPROM/EEPROM burner... No need for an external ROM socket.... Cool tool for would-be GX4000/PLUS ROM based softwares developpers.

A cool improovement may be to connect the DB9 to the extension port of the Amstrad while using it as ACID-ROM, but this would perhaps be an even worse nightmare to implement... Not good to access to ROM as ROM while burning it...


Joystick coverter :
Also using a Microcontroller, in a "box" with adequat plugs in and out...
This would convert mundane modern joysticks into Old fashionned  9pin ATARI standard joysticks.

The aim would be that you may put USB joys, playstations or Xbox joys.
IMO, the Plasystation joy is good as it is easy to find cheaply... and has a lot of buttons.

Of course this can get trickier than expecter, as the 9pin Atari standard was followed by manufacturers only in 1 button mode.
But it would be quite better to implement the various 2or more buttons configs.

We will also try to implement the D+6 1 player joystick for the Amstrad CPC...
This is simply the 2 Amstrad Joys merged as one, enabling 2 fire buttons and 2x4 directions (4 of them used as Fire buttons).

Will also see for Amstrad PLUS Analog joys (may be trickier...)

But the aim would be that this may enable to use modern Joys for AMIGA, Atari ST, SEGA MS or MD...ZX speccy, C64...and whatever.

Perhaps a Mouse too ?

Of course such Box would need a powersupply...



What do you think about it ? I may start a new topic for this...but it can wait.

Is anyone of you used to microcontrollers ? Do you think it may be an adequat technical solution ?

Also has anyone of you facilities for card-printing or cheap components supply ???

Are you aware of technical impractibilities concerning the use or Flash Memory for an Amstrad PLUS Cartridge ?
Experience of Amstrad ROMboards designers welcomed...


From now, we are awaiting deliveries of some components (Flash memory, Microcontroller, Breadboards...) to go further in those developpments.



Needless to say, if those projects get to a successfull end, we may manage a production and expect developpers (You my friends) to feed those with some softwares or applications.

Sweet stuffs ?
Symbos/Future OS special PLUS versions... Soundtrakers special versions... and  256K or more ROM games.

Concerning the Joy adapter, this would be great if Game developpers implement the use of a 6 button joy... or dual direction+2 button (games like Gryzor or forgotten worlds, but even wizball... Commando... may make use of this.
Enabling to move and aim diferently.

spybro

Really great ideas MacDeath!
Just a quick question about the cartridge
is there a way to make some extra ram through the cartridge in the cpc+?



Bryce

The Joystick idea sounds good and should be pretty easy to implement. The mouse adapter already exists http://www.cpcwiki.eu/index.php/PS2Mouse although it's not really true USB, it switches the USB mouse back to PS/2 mode but should be able to handle most USB mice. You should be able to map six buttons to the port in total, the CPC joystick port has fire 1 + 2, plus an undocumented 3rd input for each joystick, so all six could be mapped to a single modern USB joystick. Your biggest problem will be compatibility, because there isn't a strict protocol for USB mice, every manufacturer seems to have done their own thing. No idea about xbox / PS3 joysticks though.

The ACID project will be a little trickier, the ACID does an awful lot within one clock cycle, so the µP will probably need to be running at 100Mhz or more to react fast enough. A PAL would probably be a better solution for this.

As far as microcontrollers are concerned, I do most of my stuff with Microchip PICs, if they are the processor you're using you can send me a PM if you need any help.

Bryce.

fano

Quote from: MacDeath on 13:39, 04 June 10Reprogrammable Cartridge :

Would be an Amstrad PLUS cartridge with an additionnal DB9 port.
It would contain a Micro-controller and a 512K flash memory.
What we aim at :
-You plug the DB9 port on a PC : the Microcontroller is in programmable mode : you can put anything you want in the Flash/ROM...
-You plug the Card-edge on an Amstrad PLUS (GX4000) : the Microcontroller emulates the ACID and the Flash memory acts as a ROM.
I hope you'll success in that because it is a great idea.We could release easily new cartridge software for GX4000/CPC+ with this type of cartridge , this would be a great improvement for devellopers and for users !
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

MacDeath

#196
From what we understood, the ACID has a 256 (8 bit)pool  of sequences (the codes) ?
So those may be pre-calculated and put in the internal memory of the MicroContr... not ?


100Mhz ? are you sure ? the microcontroler we aimed at was 16MHz...
But this can be not that simple...
A quite modern microcontroler can perhaps fullfill fast enough calculus and functions, and my brother wanted to programm it in assembler (not in Basic) so the beast would work at it's fullest potential.

;ACID reverse-engineered 13-16 February 2010 by nocash (Martin Korth)
;below is repeated on every CLK cycle...
CmpVal=13596h, XorVal=0c820h
if PinA0=1 then CmpVal=CmpVal XOR 0000ch, XorVal=XorVal XOR 00004h
if PinA1=1 then CmpVal=CmpVal XOR 06000h, XorVal=XorVal XOR 06000h
if PinA2=1 then CmpVal=CmpVal XOR 000c0h, XorVal=XorVal XOR 00080h
if PinA3=1 then CmpVal=CmpVal XOR 00030h, XorVal=XorVal XOR 00020h
if PinA4=1 then CmpVal=CmpVal XOR 18000h, XorVal=XorVal XOR 08000h
if PinA5=1 then CmpVal=CmpVal XOR 00003h, XorVal=XorVal XOR 00000h
if PinA6=1 then CmpVal=CmpVal XOR 00600h, XorVal=XorVal XOR 00000h
if PinA7=1 then CmpVal=CmpVal XOR 01800h, XorVal=XorVal XOR 00800h
if PinCE=0 AND (ShiftReg OR 100h)=CmpVal then ShiftReg=ShiftReg XOR XorVal
NewBit=ShiftRegBit0 XOR ShiftRegBit9 XOR ShiftRegBit12 XOR ShiftRegBit16
ShiftReg=(ShiftReg SHR 1) + (NewBit SHL 16)
Wait for falling edge on PinCLK
if PinCCLR=0 then ShiftReg=1FFFFh      ;\done at falling CLK edge
PinSIN=ShiftRegBit0                    ;/

QuoteThe 16pin ACID chip (in the cartridge) is sending a serial data stream   to the 160pin ASIC chip (in the computer). The data stream is generated   by some shift/xor logic, and is also affected by the EPROM   address/enable signals. If the data stream isn't correct, then the ASIC   does scatter access to RAM, making the cartridge unusable. 
What is the actual clocking of the serial Data stream ?

What does it look like ?



Also concerning the MicroControler, we may not take the smaller model... but one with enough functions or internal memory to storage precalculated datas and so on...
If the stuff has to enable writing on the Flash Memory, we may need this.

ATMEL brand was the kind of Microcontroler we were looking at.
The component we ordered is to be a DIL24, about the same pin number as the eeprom used in cartridges.

Needless to say this multifunction-cartridge is to be bigger than the original GX4000 cartridges.
But trying to in-build the writing function seem a good idea to me.
Better than having an Eeprom socket (would need an Eeprom burner...ouch)... this would be PC-User firendly.

Many upgrades can be done perhaps...
Just like : ability to be plugged as Extension on CPC too... like a ROM box with a 'limited) writing function then...

But before trying to handle this, we must verify that ACID can be emulated properly with it, the rest would be more trivial.

The Flash memory is like the Eprom, but with a different Pin setting (yet same PIN number) so a new board is to be designed anyway.


For the Joystick adapter, it seems that some ATMEL microcontroller do have USB ports or Analog ports... sort of.

Anyway, I'll keep you informed once we recieve the componnents...


It's cool I could manage my brother into this.

He was in Engineer school... stopped after completing the 4th year (1 last year to do) because he became a professionnal musician...lol.
In a band called Dionysos...almost famous in France.
http://en.wikipedia.org/wiki/Dionysos_%28French_band%29
http://www.dionyweb.com/site/index.php
But as Computering also remained his hobby... he has a good level of knowledge... (Both electronnic and software)
If I suck at coding, that's because it was him who operated the Amstrad CPC at home...



For the Joystick adapter :

IMO Xbox and Playstations are good choices.
My bros told me he prefered the Xbox but Playstation are also cheap easy to find (thx to the hueg sucess of PS1) and has a lot of buttons.. just hope the plugs are easy to find...
Concerning PC gamecontrollers, it may be a complete nightmare as every manufacturers do as he wishes, to many different stuff...
While consoles are perhaps more/betterly standardised.

So yeah, even if centered on Amstrad, the aim is to do it a bit universal for every common 9pin ATARI joy standard...
Sega 8/16bit, AMiga, Atari ST, Speccy, C64 and Amstrad...
1 button "Atari" is alsmot universal... 2 and more buttons are somewhat more exotic (especially on Amstrad...).

But using a microcontroller is better than what I was thinking about first (re-cabling SEGA controllers) as it opens the field for modern "shitton-buttoned" controllers...


fano

Quote from: spybro on 08:51, 05 June 10
Really great ideas MacDeath!
Just a quick question about the cartridge
is there a way to make some extra ram through the cartridge in the cpc+?
nope , signals needed for writing are not present on cartridge bus :/
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

MacDeath

#198
Quotenope   , signals needed for writing are not present on cartridge bus :/
Yep, the Cartridge port on GX/PLUS range is Read only... as it was designed to only feature ROMs and the ACID.



But a RAMbox is not that complicated, just need to put it on Extension port (so unfit for a GX4000 only).

Where can I find blueprints for such devices (like a 512k extension) ? Are some of you selling "Assemble-it-yourself-kits" ?


For the first cards, we where considering this :
http://www.expresspcb.com/ExpressPCBHtm/SpecsMiniboard.htm
"The Standard MiniBoard " would probably allow 6 cartridges printed circuits for 51$+shipping... accoeding to dimensions.

The plug card-border is 1.9 " wide...
3.8 x 2.5 inches.
3.8" = 1.9" x2...
so we can put 2 carts inside this.

A clever design is needed though.  ;)

Advantage : those cards are pre-"Holed" (pre-pierced)...

But do some of you know better suppliers for such stuff ?

  Electronic schools can perform such production, but would they ?
I will perhaps ask the Grenoble's electronic faculty...   


I know it is far too optimistic but... from what we saw approximately and roughly :

Microcontroller : 6 euros...   + shipping   
Flash Memory : 8 €uros... + shipping       
Printed circuit : 51$+shipping = 100$ for 6 cartridges...     well it was somehting like 12-14E per printedcircuit   

+ a bit of componnents (diodes, cristal= : +8 euros...?)

For the LKs, I don't know if it is that necessary ?
  as there are only 25 original GX4000 games, modding them may be better   so we just keep on 512k Lks setting... or a pair of jumpers...then...

We are at 40€uros, perhaps 50€uros...very roughly...

as :
--Shipping cost decreases with more components.
--Component's cost decrease when you buy 10...or even more...
--Some of you may have good suppliers... or circuit printing facilities...

And we still have no casing...

But I don't think it's more expensive than a modern RAMbox or ROM box, and it would not need an Eprom burner... not buying many additional Eeproms...


Concerning "original games productions", of course such re-writable cartridge" bypass every software-commercial concepts.

But perhaps some sort of "write protection" can be implemented... as the microcontroller would manage this with our specifications...
the "Re-writable" and the "Really ROM"...

So a 2-part cartridge one may be needed...
1 Cart with only the ACID and a "compatible" plug.
1 cart with only the memory and a "compatible" plug...

Of course you'ld have to get the "ACID part" first and once, so the "games part" are less expensives because 1 less component and smaller printed-cards...

The plug between ACID and ROM would be a bit more exotic.
It's to be a 28pin connector...
Perhaps a clever code-software...  or whatever so the "original game" rom would work only with the "original game" ACID/Microcontroller and not with the Re-writable one...

So yeah, you fellow CPsCeners would not be bothered (yet it's always kool to have originals and support productions...) but the Money making console collectionners dumbers that put 100+ €uros at €bay to get a "very RARE collector GX4000 burnin' rubber cartridge"...héhéhé...
would pay for us...


But too much dreams kills it.
We must first see if we can manage this ACID emulation... Hope my brother is as good as I believe...





Bryce

16mhz might be a little too slow, most microcontrollers are very flexible, but not very efficient. The Microchip PICs need 4 clock cycles per command, which means that at 16mhz, it's really only running at 4mhz, so a loop to say "check a pin for signal, then jump to correct value in table and send it out" would take at least 16 cycles, ie: it would have a 1mhz reaction time and still be too slow for the CPC. I know Atmel are supposedly faster, but I'm not sure of the exact timing, so you may run into problems with reaction time with them too. I also usually program them in assembler, that's normal for microcontrollers.

Still, when you have the code written, you can always choose a faster µP to get it working at the right speed.
And it sounds like an interesting project, have fun.

Bryce.

Powered by SMFPacks Menu Editor Mod