Reply by Al Borowski September 10, 20042004-09-10
> There are many ARMs with on-chip LCD drivers, e.g. Sharp LH79xxx > series. These are actually quite easy to use. For an assembly > programmer, the ARM is one of the nicest CPUs around - even more > fun than a 68xxx.
d'oh! I should have mentioned this, as the one I'm programming now has such a driver :) Al
Reply by Stephen Pelc September 10, 20042004-09-10
On 10 Sep 2004 06:04:51 -0700, filtered@psychosanity.com (Extrarius)
wrote:

>Or maybe I'm underestimating the electronics of using an arm? It seems >like it would be much easier since all the parts would probably have >much stricter requirements as far as how the connections go. Also, >wouldn't I still need some kind of 'video card' if I didn't want to >count clock cycles for the proper timing of video?
There are many ARMs with on-chip LCD drivers, e.g. Sharp LH79xxx series. These are actually quite easy to use. For an assembly programmer, the ARM is one of the nicest CPUs around - even more fun than a 68xxx. Stephen -- Stephen Pelc, stephenXXX@INVALID.mpeltd.demon.co.uk MicroProcessor Engineering Ltd - More Real, Less Time 133 Hill Lane, Southampton SO15 5AF, England tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691 web: http://www.mpeltd.demon.co.uk - free VFX Forth downloads
Reply by Al Borowski September 10, 20042004-09-10
> Well, it kind of kills the oldschool feel when you have 150+ times the > available processing power =-/ Programming a 386 was easy enough, and > unless I'm mistaken an ARM has quite a bit more power than that.
It depends on the chip of course. You have the low end ~30MHz (I think) Philips microcontrolls, right up to the 400MHz+ beasts.
> > If I'm going to use an ARM, I feel like I might as well just make > games on my PC and skip the electronics stuff all together.
Really? why? The only advantage to using an ARM for this kind of thing is more processing power. You still have the fun of making a PCB, connecting any additional devices and programming for them, translating between all the different weirdo voltages :-) etc.
> Also, from > what I've seen of ARM assembly, it isn't so great
Strange, I think ARM is the nicest CPU I've programmed for yet. _miles_ ahead of PIC. You can generally do up to 3 things with every instruction; a test, an ALU operation, and a shift. You can do some tricky things with it if you're careful: --- If ( (R1==R2) and (R3==R4)) Then (R5=5*R6) --- Becomes CMP R1,R2 ; compare R1 and R2 CMPEQ R3,R4 ; if equal, then compare R3 and R4 ADDEQ R5, R6, R6, ASL #2 ; if equal, then R5 = R6 + 4*R6 = 5*R6 The 'EQ' part means 'only execute if the last result was equal'. There are other options of course.
> I'd much rather have something slow at least, maybe something from > zilog or an old 68k or the like where I at least have to try to get > some good performance.
If you want to make work for yourself, then sure :-) But making a game system like you are talking about will be tricky enough.
> > Or maybe I'm underestimating the electronics of using an arm? It seems > like it would be much easier since all the parts would probably have > much stricter requirements as far as how the connections go. Also, > wouldn't I still need some kind of 'video card' if I didn't want to > count clock cycles for the proper timing of video?
If you just use an ARM microcontroller, the electronics may be roughly the same, mabe easier if you use more devices integrated into your microcontroller. You will still need trickiness to generate video signals - except you will have a bit more headroom speedwise. cheers, Al
Reply by Extrarius September 10, 20042004-09-10
"Hans-Bernhard Broeker" <broeker@physik.rwth-aachen.de> wrote in message 
news:2qd6llFtl398U1@uni-berlin.de...
> Extrarius <filtered@psychosanity.com> wrote: > > [...] > Seriously, I suspect you're suffering from "new hammer disease", to > some extent. You know, the one from the saying "If you just got a new > hammer, everything you see suddenly has a way of looking like a nail." > > [...][PICs might not be right for your project][...]
Well, really, I'm not stuck on PICs, its just that doing it in an FPGA sounds kind of scary because its entirely uncharted territory for me, and I've seen some pretty impressive projects done with them (for ex, XGameStation, thought it uses an overclocked SX chip). Also, there is a ton more information (that I can find anyways) on PICs than FPGAs or other solutions. Also, it seems like making hardware to act as a 'hard coded processor' (which is what I'm understanding of doing it as an FPGA) would mean a LOT more work to make a new game using the same system since I'd have to create a whole new 'hard coded processor'. Maybe 'programming' hardware isn't really that different from creating software? If that is the case then it might not be a big deal, but it seems like it'd be much more difficult. Anyways, reguardless of how inappropriate they are for my goal project, they will hopefully help me get familiar with electronics, which will help me then move to whatever more advanced equipment I need.
>> Of course, I have no idea how difficult that would be, but it seems to >> mirror the way things are currently done on computers where there is >> are seperate devices for specialized tasks like video and audio >> output. > > "Currently"? I'm quite certain it's been that way pretty much since > forever, i.e.[...]
I didn't mean to imply it has ever been different, but really I wasn't sure it had been and didn't feel like researching it for such a simple comment.
Reply by Extrarius September 10, 20042004-09-10
Al Borowski <al.borowski@EraseThis.gmail.com> wrote in message news:<414117c9$0$22789$5a62ac22@per-qv1-newsreader-01.iinet.net.au>...
> > I've been looking around and considering switching to the SX chips > > offered by Parallax/Ubicom, since they can run up to 75Mips as opposed > > to the mere 10Mips of the fastest PIC chips, but the high end PIC > > chips have much more flash/ram/eeprom onboard that might make managing > > things easier. > > Don't make things difficult for yourself. AFAIK, the SX chips are based > on a very primitive PIC core. They are a pain to program. For the more > powerful stuff, I'd recommend an ARM or other decent 32-bitter, and use C.
Well, it kind of kills the oldschool feel when you have 150+ times the available processing power =-/ Programming a 386 was easy enough, and unless I'm mistaken an ARM has quite a bit more power than that. If I'm going to use an ARM, I feel like I might as well just make games on my PC and skip the electronics stuff all together. Also, from what I've seen of ARM assembly, it isn't so great (though as you said I could just use C or even go for one of their java cores, but again the idea was to have a challenge). I'd much rather have something slow at least, maybe something from zilog or an old 68k or the like where I at least have to try to get some good performance. Or maybe I'm underestimating the electronics of using an arm? It seems like it would be much easier since all the parts would probably have much stricter requirements as far as how the connections go. Also, wouldn't I still need some kind of 'video card' if I didn't want to count clock cycles for the proper timing of video?
Reply by Hans-Bernhard Broeker September 10, 20042004-09-10
Extrarius <filtered@psychosanity.com> wrote:

> available in quantity. It seems to me that the only question would be > getting the data from the 'slow' PIC to the 'fast' FPGA.
And getting rid of the 'slow' PIC would solve a good part of the problem for you ;-) Seriously, I suspect you're suffering from "new hammer disease", to some extent. You know, the one from the saying "If you just got a new hammer, everything you see suddenly has a way of looking like a nail." The PIC series of micros may be famous and widely used in hobbyist circles for various reasons, but that by no means does that imply that it's the right choice for every hobbyist project in the world. For a project as ambitious as yours, trying to do your own animated video output, while still having enough juice left to do not entirely pre-recorded audio, I rather strongly suspect it's inadequate. A bit like trying to move a 4-person household between towns using nothing but an old VW beetle as transport --- sure, it may be possible, if you really put your mind to it (and you don't have too much heavy furniture), but why would you want to, if you can just rent a proper moving van instead?
> Of course, I have no idea how difficult that would be, but it seems to > mirror the way things are currently done on computers where there is > are seperate devices for specialized tasks like video and audio > output.
"Currently"? I'm quite certain it's been that way pretty much since forever, i.e. all the way back to the days of the very first things called "computers" that weren't human beings paid weekly salaries to do computations using pencil, paper and brain. Generating analog signals from digital video frame buffers and pre-recorded audio samples is almost invariably a task so demanding, yet untypical, that there's no way a common, non-specialized CPU could compete with dedicated, specialized hardware. Audio is often handled by somewhat general-purpose DSP chips these days, but for actual video (i.e. anything at or beyond the resolution of a TV), there's not much doubt you'll need specialized hardware. Even an FPGA would likely be overly generic for that --- using an actual COTS video controller might well be the better idea. -- Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de) Even if all the snow were burnt, ashes would remain.
Reply by Al Borowski September 10, 20042004-09-10
> I've been looking around and considering switching to the SX chips > offered by Parallax/Ubicom, since they can run up to 75Mips as opposed > to the mere 10Mips of the fastest PIC chips, but the high end PIC > chips have much more flash/ram/eeprom onboard that might make managing > things easier.
Don't make things difficult for yourself. AFAIK, the SX chips are based on a very primitive PIC core. They are a pain to program. For the more powerful stuff, I'd recommend an ARM or other decent 32-bitter, and use C.
> > Or maybe I'm just way off base because I'm completely new to this > field =-)
You only learn by making mistakes :-) cheers, Al
Reply by Extrarius September 9, 20042004-09-09
larwe@larwe.com (Lewin A.R.W. Edwards) wrote in message news:<608b6569.0409070701.6d404964@posting.google.com>...
> > I want to do many random projects, but I'd like to work toward making > > an NES-level game by both assembling the hardware and programming the > > Interesting idea. Most of the difficult work in this will be > generating the tiles and sprites, and collision detection. This would > be considerably easier to implement in programmable logic (FPGA) than > on a PIC, IMHO. And on the PIC you have irritating memory addressing > limits. I'd suggest you start with something substantially less > ambitious than a NES-alike, though. Maybe a Pong-alike (which has been > done in a PIC, BTW). Later, work your way up to emulating those > multi-game ASICs AY-3-8500 and AY-3-8610A (search google to see what I > mean). I'm told these chips were really masked, customized PICs anyway > (though I don't 100% believe it).
Hrmm, I had an interesting idea. From what has been said here and various sites I've found, it seems the hardest part is generating the various analog signals(color video seems to be the most difficult, but also audio) with proper timing on a PIC. So what about using a small FPGA to make a 'video/audio card' type device that can take instructions from the PIC and load the tile images/etc from external memory(probably EEPROM) when needed. With about 52us per scan line, I'd need ~160ns or faster access time on the memory to get the desired 320*200 resolution, which seems to be available in quantity. It seems to me that the only question would be getting the data from the 'slow' PIC to the 'fast' FPGA. Of course, I have no idea how difficult that would be, but it seems to mirror the way things are currently done on computers where there is are seperate devices for specialized tasks like video and audio output. It seems like that would possibly be a lot easier than making the whole thing on a FPGA (for me, since I don't know hardware design but I do know normal programming). Also, what do you mean collision detection would be difficult? I guess it would be if I wanted per-pixel collisions or something, but that isn't neccessary for the kinds of things I have in mind. Would the slow speed of a PIC make even simple bounding box checks too slow? I've been looking around and considering switching to the SX chips offered by Parallax/Ubicom, since they can run up to 75Mips as opposed to the mere 10Mips of the fastest PIC chips, but the high end PIC chips have much more flash/ram/eeprom onboard that might make managing things easier. Or maybe I'm just way off base because I'm completely new to this field =-)
Reply by steve September 9, 20042004-09-09
filtered@psychosanity.com (Extrarius) wrote in message news:<4781a87e.0409061701.5eef2236@posting.google.com>...

> In summary, I'm looking for any good pointers/ information/ resources/ > books/ websites/ etc on what inexpensive parts are good to have when > tinkering with PIC-based circuits, on how to build an inexpensive > power supply for such projects, and any other general information on > electronics/digital circuits that you think is important. >
If I were you I would get all my stuff at ebay, new components sell for below wholesale, used scopes and power supplies can be bought for $10, and books are almost free. Of course, it may take some time to find what you want, but thats the price you have to pay if you can't afford new stuff. However for information I wouldn't suggest any books, I would suggest getting back copies of magazines like Nuts and Volts and Circuit Cellar for ideas/circuit examples, they usually explain the basics and get you going quickly. If thats too expensive the web has more then you need. steve
Reply by steve September 9, 20042004-09-09
filtered@psychosanity.com (Extrarius) wrote in message news:<4781a87e.0409061701.5eef2236@posting.google.com>...

> In summary, I'm looking for any good pointers/ information/ resources/ > books/ websites/ etc on what inexpensive parts are good to have when > tinkering with PIC-based circuits, on how to build an inexpensive > power supply for such projects, and any other general information on > electronics/digital circuits that you think is important. >
If I were you I would get all my stuff at ebay, new components sell for below wholesale, used scopes and power supplies can be bought for $10, and books are almost free. Of course, it may take some time to find what you want, but thats the price you have to pay if you can't afford new stuff. However for information I wouldn't suggest any books, I would suggest getting back copies of magazines like Nuts and Volts and Circuit Cellar for ideas/circuit examples, they usually explain the basics and get you going quickly. If thats too expensive the web has more then you need. steve