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 2 Guests are viewing this topic.

arnoldemu

Quote from: MacDeath on 07:35, 14 September 10
There may perhaps be a solution to have some kind of saves on GX4000...
Tapes.


You emit Datas in Audio thx to sound output (ouch,) and put them on any sound recording device...
Then you use a Codemaster-CD like device...  reading your datas thx to Joy port. :P

But can the AY psg generate such signal ?


Yeah, It's a bit messy, lol...

An adaptor that sits on the joystick port and can read/write data would be fantastic (like a memory stick), however, this will not work on cpc+ or gx4000 I think.

Yes, the cartridge port not having write or similar is a problem.

on 464+ or 6128+, having extra hardware on the back for load/save is a good idea and keep it seperate to the cartridge hardware.

would it be possible to connect some device that watched the common signals on the joystick port. Send out a pre-programmed stream to trigger some hardware on the port to enable and accept data?

A crazy idea but may be a good idea as an alternative to a modified cart?

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

nocash

Uh, tapes? The idea would work, so far it's a clever idea, but even if it were a zx81, I wouldn't feel comfortable with using tapes anymore. An external memory stick on joystick could work too, downside is that it requires more hardware, may conflict with joysticks, and if there is write-able flash memory in the cartridge, why not using that?

> You need about 33 additional I/O lines on the CPLD (if I counted correctly:
Good point, it'd require more pins. But not 33, let me try counting.

> data bus in/out(16)
You can't write data to data-in, so you need only data-out (=8)

> first 8 address lines to transfer a data byte
Well that are already used by the CPLD, so no need for more pins (=0)

> upper 5 address lines to detect access of last bank
If you run short of pins, you could have them ANDed externally, so you could get around with 1 pin (=1 or 5)

> +WE+CE in/out(2)=33
CE-in is already there, so you need only /WE-out and /CE-out; or maybe better /OE-out (=2).

That'd be between 11 and 15 additional pins. The normal ACID has 14 unique pins, so it should be possible to "squeeze" the extra pins into a 44pin cpld. You could even spare some pins for jumpers or links, allowing to mark portions of the cartridge as read-only, for write protecting the game-area, and leaving some K bytes write-able for game positions and hiscores.

And an address line for bank switching may be useful:
If upper 6 address bits = 111111 then latch a0-a7 as data, and make treat next access as write-acess
If upper 6 address bits = 111110 then latch a0-a7 as bank number
that'd expand the possible size from 512K to 256*512K. But would require some MORE pins to output the bank number.

Uh, not sure if that are useful ideas, or if they suggestions to create a great mess :-) does any of it make sense?

nurgle

All those ideas of using different CPC ports sound like a big kludge to me. Why would you want to burn cartridges on the CPC anyway, when you have to get the ROM image from the net with a PC? Sure it's geeky to put them on a 3" floppy before burning on the CPC, but I still prefer the idea of a PC programmer as a more practical approach. Its also the only way on a GX4000. It has been done for other systems, i.e.


http://blog.thewombat.org/2009/11/tototek-snes-flash-cart-review.html


It just boils down to the question how the programmer can be made very cheap. As cheap as the simplest DIY PIC programmers would be nice. Is this possible with a flash ROM inside the cartridge?

TFM

Well. I'm thinking of having a CPC Plus that reads the content of it's cartridge and saves it to disc. Then you can reload the content to an Flash EPROM.

The only thing you need to perform this tasks is a ROM expansion, which also provides the Lower ROM. A kind of lower ROM-RAM-Box ;-)

And NOBODY would be forced to use a PC. Well, you must not agree. That's just FutureSoft philosophy - do everything with a real CPC.

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

steve

I would also like to write to cartridges on a real CPC/+ even if it requires a separate cartridge slot attached to the expansion bus.

MacDeath

#280
Quoteon 464+ or 6128+, having extra hardware on the back for load/save is a good idea and keep it seperate to the cartridge hardware.
On 464+/6128+... you havce an easy way to save/store Datas... this is called Disk Drive or Tape Drive...
You just need to make sure your program (Game or Application) include the "drivers" neded to use such device... of course it won't work on GX4000 but 8bit console guys are known to not play real RPGs... and, well... the scenne prefers Comuters to consoles, or else it can't be real scene because scene imply...computering a bit...not only playing ?


Concerning my pseudo tape solution : it is a pure fantasy and not practical at all, yet it can be a way to achieve this in theory.


But lets put this simplier :

=Complex games needing writing Datas : use a damn computer... Disk can even allows Data Disks (extension of the game, new adventures, additionnal levels, new level fdesign, extra stuff and so on...)

=Simple arcade games : ok, you can use a console, and if you cannot save your Highscore, well... who cares ?

After all, a proper easy way to write cartridge is more a computer stuff, mostly for program designers...

Console guy are only... gamers, final users... they just buy games and play them...they don't need to write their Cartridges...

And if getting a few re-writable cartridge is of wourse very interestiing (better than disks...actually...) just to be sure you get a handfull of self-designed ROMs... the rest is to be properly bought just to support the active scene and to tell "look I have an original and legal copy..."


If ACID can be replaced by quite cheap preprogrammed CPLD components, and be directly soldered on the cartridgeboards, for a reasonnable price... let's go for it...

If you want to reprogram your ROM with your CPC, just get a special Extension (perhaps using print port too...) with all the adequat components and plugs, and an adequat Software too then (on a cartridge too, lol...)
Yet this may need another plug on the cartridge...

pepax

Quote from: arnoldemu on 10:05, 14 September 10
An adaptor that sits on the joystick port and can read/write data would be fantastic (like a memory stick), however, this will not work on cpc+ or gx4000 I think.

Yes, the cartridge port not having write or similar is a problem.

on 464+ or 6128+, having extra hardware on the back for load/save is a good idea and keep it seperate to the cartridge hardware.

would it be possible to connect some device that watched the common signals on the joystick port. Send out a pre-programmed stream to trigger some hardware on the port to enable and accept data?

A crazy idea but may be a good idea as an alternative to a modified cart?
Something like the Atarivox? http://www.richard.hutchinson.dsl.pipex.com/
The old Vecvox: http://www.richard.hutchinson.dsl.pipex.com/new_page_2.htm

MacDeath

#282
On PLUS I was told the Joystick port cannot emit stuffs as on CPC old (because the double joiy port include diodes...)...
this can be an issue... if it is true.

The GX4000 seems to have almost no emiting port/plug, except the video and sound plugs...
So the idea to use any audio MP3 device (Ipod and so on) and get a Joy input/jack audio output is the only evident way.

Like the unreleased Codemaster CD-ROM loader as I told.

But this would need a special Jack/Joy kit and implement stuff on the software (ROM) to manage this.

Manipulation :

recording Datas ? connect your record-input Ipod plug on the Sound jack plug of the GX... shut the monitor sound (or else you're gonna get earsbleeding...)...
Put ipod on record, click a key (to start emiting).

Ok, now you have your save.
Name it properly (if your Walkman/pod allows this) and keep track of it.

To re-load it, connect your Ipod sound output on the "Codemaster CD-ROM loader" joystick plug.
click for starting recieving (on GX) then play the "tune"... there you are.

Not simple actually but efficient, yet only usefull for GX4000 users...lol...
Also, the routine to code Datas into sound signal with the AY may be quite... is to be developed...

464+ have a proper Tape, 6128+ have a proper DiskDrive...

And games supporting those would need to actually include "drivers" for Tape (464+), Disk (6128+) and "Codemaster gasfactory" (GX4000)
in addtion GX4000 should get the proper additional equipment :
=Ipod/MP3 walkman (easy...) able to record (using a Mic jack plug)
=minijack cable (to record)
=custom JackJoy stuff, probably needing a few Electronical components actually...

Those additional "drivers" may take a bit of bytes on the ROM... but not that much i suppose.
This is the price to pay to get a fully PLUS range compatibility for a cartridge of a game who need to save/load datas.


Of course (I don't know what Pods models have nowadays) if your pod can get bot microphone plug and sound output plug...you can get both pluged at the same time on your GX... and this also means you have quite a good amount of Data storage as most modern numeric walkman have more than 1Giga of storage.
but hey, this may be quite long to read those...


Ouch.

Well, would be fun but not that practical. :'(


But perhaps the Analog port or Lightgun port can actually emit something ?
This would simplify a lot of stuff perhaps (or not...)

nocash

Okay, here are the BEST possible solutions for game positions on the GX4000.

1. Unplug your joystick, wire some external logic to the joystick port (works, the select line can be used as output), connect a cassette recorder to it, connect batteries or power supply, find the correct cassette, rewind tape, press play or play+rec, and there you go, and thereafter reconnect the joystick to continue playing. That's how one would have done it in 1980. As far as I understood, that's currently favored by most people? Really?

2. Use passwords, like the secret landscape codes used in Sentinel. Nobody really likes that solution. But it has some advantages: No external hardware needed (no external power supply, no batteries, no adaptors, cables, cassettes, drive belts). And passwords could be also used on 464+ and 6128+. So it'd be a bit more realistic than the "use the built-in disc/tape drive" solution; which I don't think that too many programmers would be able to support them, not to mention to test both tape and disc on real hardware, and not to mention to support things like 80-track disc formats.

3. Allow to store data in the cartridge. Would work on all models, no matter if it's a gx4000 or 464+/6128+, no external hardware needed, and it's faster than tapes, discs or passwords. If you look at other ROM cartridge systems (NES, SNES, Gameboy, NDS, etc), you'll see that many cartridges contain battery-backed SRAM, or newer EEPROM/FLASH chips - additionally to the ROM chip. That usually costs quite some money, but if we do have a write-able "ROM" chip, then we could get that feature for free - as long as writing is implemented in the CPLD.

---

> Why would you want to burn cartridges on the CPC anyway, when
> you have to get the ROM image from the net with a PC?
I didn't mean you MUST use the CPC to burn cartridges. But if the cartridge does have the cart-edge connector for reading, then why don't use the same connector for writing? Doesn't matter if you connect it to a PC or CPC or other computer. It'd be just cheaper than using two connectors, one for reading, and one for writing.

NB. I can't picture how any such second connector should look like! I guess serial-data won't work, unless the CPLD can translate the serial data to parallel address/data lines, which would require a couple of pins. The other option would be a parallel connector, using a 40pin IDE-harddisk-style connector or so, is that how it should look like? Or, if there is no write-support at all, one could use a screwdrive to remove the chip from the cartridge, and program it with a normal EPROM burner, would be fine, unless one wants to rewrite the cartridge more frequently, like when testing self-made programs.

Bryce

If all the required signals are available on the ROM cartridge port, then using this port is obviously the easiest and fastest option. To reduce the cost some more, you could keep the game on a standard ROM and save the data on a low-cost serial ROM. They come in 8-pin packages, cost very little and the game can still be read-only to avoid accidental over-writing or other issues. If it's standard in all "new" cartridges, with a standard "writable address", then a standard save/retrieve sub-routine could even be written to make things easier for the programmer too.

Here's a typical serial ROM that should be viable (0.21€):

http://www.reichelt.de/?ACTION=3;GROUP=A321;GROUPID=4510;ARTICLE=40061;SID=22o5FEbtS4ARYAAGCkTJo9114e4233d9a021f88a3626f5cf64d6a

Bryce.

MacDeath

But I believed the cartridge port of the PLUS does not allow "write" ???

nocash

There is no /WR (write signal), and the 8bit databus is read-only. But the addressbus is write-able.
So one can mis-use the address bits for writing data. The same method is used in Atari 2600 cartridges, for example.

TFM

Quote from: nocash on 19:44, 17 September 10
There is no /WR (write signal), and the 8bit databus is read-only. But the addressbus is write-able.
So one can mis-use the address bits for writing data. The same method is used in Atari 2600 cartridges, for example.

Guess it's cheaper to just add an EPROM box or similar. Not everything that can be done must be done  ;)

That write-data trick is an excellent idea anyway  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

nocash

How cheaper? Flash memory is cheapest (cheaper than eproms) (and cheaper than roms, unless you plan to order 10,000 pieces or so). And putting the write-logic into the CPLD chip wouldn't increase the cost. The feature doesn't require any additional hardware, so it's useful and free.

And using a SECOND flash chip (like Bryce suggested)... that would increase the cost by 20 cents, and I assume it be a bit more complicated to implement it in the cpld. Using two flash chips would make sense only if one is paranoid about the possibility that the game *could* be overwritten accidently.

I wouldn't be too worried about that, it'll rarely happen, and there are other cheaper ways to prevent it: Put some "If target_address = outside_valid_region then exit" into your write_game_position function, or use an eprom-burner to activate the write-protect feature that is included in the flash chip itself.

Anyways, caring about write-protection would make sense only for "commercially" produced games, in all cases I'd prefer having full write-access to the whole flash memory.

OCT

Quote from: nocash on 02:16, 13 September 10
> Reprogrammable Rom box
You mean like the ROM boxes that connect expansion rom to the expansion port?
ROM boxes do already exist (maybe no reprogrammable flash-ones)
Isn't that what a http://www.cpcwiki.eu/index.php/SYMBiFACE_II should be if it was available?

nurgle

Quote from: OCT on 23:07, 17 September 10
Isn't that what a http://www.cpcwiki.eu/index.php/SYMBiFACE_II should be if it was available?


Or the Inicron RRB http://www.cpcwiki.eu/index.php/Inicron_ROM-RAM-Box


Or the Ramcard128 from Ram7 http://www.cpcwiki.eu/index.php/Ramcard_128


Btw.: I just stumbeled over this interesting device. The hardware looks a bit overcomplicated to me from the photos, but there might be interesting ideas in it? The Ram7 Cartridge Hacker http://www.cpcwiki.eu/index.php/RAM7_Cartridge_Hacker


andycadley

Quote from: nocash on 21:28, 17 September 10
Anyways, caring about write-protection would make sense only for "commercially" produced games, in all cases I'd prefer having full write-access to the whole flash memory.
I'm not sure that would be terribly useful, you could only program the whole cart from the CPC+ itself if the cart had the programming software on it. And as soon as you overwrote it, you'd be stuck till you reprogrammed it from a PC or other external add-on interface again anyway, rather defeating the object.
To be honest, I'm not overly convinced there is a need to hack a writable solution into the carts anyway, the vast majority of existing 8-bit games got away largely without save game features and whilst they're a nicety I think you'd see better new titles come from have the full 512K available than you would from a small amount of save data.

TFM

#292
Quote from: nocash on 21:28, 17 September 10
How cheaper? Flash memory is cheapest (cheaper than eproms) (and cheaper than roms, unless you plan to order 10,000 pieces or so). And putting the write-logic into the CPLD chip wouldn't increase the cost. The feature doesn't require any additional hardware, so it's useful and free.

Sorry for having been unclear before. I was more thinking about the developpment costs and so on. For me is did sound like a huge lot of sophisticated work to get such an idea running. So somebody invests a lot of time and hardware...
However an EPROM card doesn't need an CPLD, just two or three 74LSomething, which shouldn't be expensive. (Less than 7 Euros?). No need to discuss this in detail  :)  Finally it's just about few bucks.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Trebmint

I don't want to put chips n boards and plastic cases together, eproms, programmable this and that. Somebody please just offer this service so I can code some plus games.

I really think just one person supplying this service would be better than individuals doing it as it would create a style, so people who collect the new carts would have standard looking stock. Same with the box art it should have a standard layout like the original Amstrad carts (if not the same as the old ones)


andycadley

If it helps, Trebmint, I'm considering doing just this. It wouldn't be anything particularly fancy though (no saving inside carts or what have you) and I'd still prefer someone to make a simple USB-able (or similar) user programmable cart as I think that'd be a better long term solution.
Need to look into costs of the various bits and pieces though before committing too heavily to it. And it'd probably need someone far more skilled than my good self, if you wanted nice artwork to go with them. :)

Trebmint

For the artwork you'd just have a basic template as a pdf of a photoshop file with a gap for the pretty pictures to be filled in.

I have 3 partially finished Plus games that I'd love to do a limited cart release of

TFM

Quote from: Trebmint on 13:33, 19 September 10
For the artwork you'd just have a basic template as a pdf of a photoshop file with a gap for the pretty pictures to be filled in.

I have 3 partially finished Plus games that I'd love to do a limited cart release of

Ok, finish one of it. Just one :-) And up to this time we will hopefully have the possibility to produce cheap carts.

Therefore we need (now) only two things:

- The Layout of the cartridge PCB (as exactly as it is on a real cart), in a file format that is suitable to send it to a company producing the PCB.

- The plasic covers.

Any piece of help is appreciated.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

jbaudrand

I'm not sure if it helps anyone here:
  for PCB, there is this french company Valadon automation (a famous company that made "le bagnard" arcade game in 1982)
  http://valadon-automation.com/VA_Automatisme.html
 
  For plastic injection:
  you have to make a mold of an amstrad cartridge, and contact a company   that can make plastic injection, it will cost a lot of money. the guy at   atariage and opcodes game succeed to do the mold by themself and contact a brazilian company,   http://www.opcodegames.com/blogs/blog14.htm
 
  Maybe you can contact them to ask them hints and tips.

steve

Instead of injection moulding the cases, you might be able to have the cases made with a 3d printer by a prototyping company, up to a certain number, 3d printing may be cheaper than having a mould made, more than that and injection moulding becomes cheaper.

You might even consider building a REPRAP open source 3d printer and make the cases yourself.
Printing is slow, but if you only want a few hundred, it should be cheaper than having a mould made.

jbaudrand

Oh yes you're right Steve I totally forgot this solution, it's probably the best because until ACID's full emulation, there's only 500 chip available.

Powered by SMFPacks Menu Editor Mod