Amiga.org
Amiga computer related discussion => Amiga Hardware Issues and discussion => Topic started by: Gaidheal on July 03, 2003, 01:28:23 AM
-
OK, what I am after is a history, with as much detail as possible, starting with the A500 and giving the low-down on its hardware, then looking at each new piece of hardware (of significance) that came out and each revision of the Amiga as it made its way to the A1200 and A4000.
Can anyone help me out? It's with a view to messing about with emulation, ultimately possibly making my own emulator (for kicks but people are welcome to help/use it) and perhaps even scratch build an 'Amiga'
-
Three places come to mind immediatly.
www.amigau.com ,
http://www.jamesalanpatterson.com/amiga.html
and www.amiga.com has history on the site somewhere.
Tons of good info on these pages. BTW the A1000 was fisrt followed by the A2000 then A500 (right?).
Good luck
Plaz
-
I stand corrected, you are of course right (about A1000, A2000) I always forget because my first experience was with with an A500 and very good programmer friend of mine, called Gordon Bissell - Gordon, if you are kicking around on here, let me know, mate. We went to Stafford College togather about 10 years ago (John)
Thanks for the links, Plaz. Off to look now - too many hits on Google to be really useful, as it is a pretty narrow request.
-
It's with a view to messing about with emulation, ultimately possibly making my own emulator
I'm afraid such emulation is far too complex for a hobby project, at least for one person. UAE has taken dozens of highly skilled developers years to develop.
I'd suggest you at least familiarize yourself with the UAE project before starting. Custom chipset emulation is deep magic, m68k emu is childs play in comparision.
I hope I didn't kill the spririt. :-)
-
LOL Actually, my friend already did an emulator for his FYP (Final Year Project) but admittedly for a Spectrum.... heh! I don't find emulation to be that big a proble, so much as I tend to get bored quickly with a project that drags.. however, I have recently decided to look into Amiga emulation for various reasons. I am familiar with WinUAE and by extension UAE in general. I also know about the commercial one (whose name escapes me at 2am). And no, you did not kill the spirit at all, heh! I have a rather high opinion of my ability, luckily not entirely without reason :¬)
P.S. Experience with the Amiga however, I don't have, so please don't feel I am giving you the brush off.
-
If you know of a piece of hardware but can't find any information on it try:
http://www.amiga-hardware.com/ (http://www.amiga-hardware.com/)
They have masses of hardware products there.
-
Hello,
Might I suggest the www.amigasource.com C= history page (http://cciinter.net/users/amigasource/ml/34.htm)
Enjoy!!
P.S. Yes I know I need to update the site ;-(
-
If you're going to make a new "kick-ass" Amiga emulation from the ground up; make sure its designed to be cycle-exact (for all chips) from the start, with correct priorities for bitplane, copper, blitter, sound, sprite, and processor DMA.
Emulating the Amiga is not as simple as emulating a spectrum, or even Atari ST for that matter. The Amiga has a unified memory architecture, where several chips can DMA to and from [chip] ram. It has taken many, many years of work with very talented programmers to get UAE to a state were most demos and games work, due in no small part to the interactions, and timing of interactions between these chips. The only way your emulator would have any advantage is if everything is cycle-exact.
-
Ok, thanks for the reply. First off, it is mostly for my own interest, so not necessarily going to be "kick ass" although I am a perfectionist, so I tend to make things the best I possibly can.
You hit the nail on the head though, as far as I am concerned. I intend to design it to be cycle-exact, i.e. true emulation, for every "real" Amiga produced. With simple one click setups for each. (obviously I am talking the final vision here!) But also I will allow, very much as WinUA does, for example, the speeds and priorites of each chp to be tweaked, potentially making it a "super fast 1200" or whatever.
Emulation is simple, if broken down into parts. The Amiga is complex by comparison with, for example, the ZX-80 (as easy as it gets!) because there is essentially only one component to worry about in the venerable ZX, but an entire chipset plus CPU in the Amiga. PC (x86) emulation is made simple by the fact that it is all basically just an extension of the original IBM PC. OK, we are now 32/64 bit, not 8 bit, and we have PCI/AGP not ISA, but you can appreciate what I am saying, I am sure.
At university we did some small scale CPU emulation using Java. I migh well start out this way with the Amiga as it has several things to commend it: JVMs are freely available for many machines, the very nature of Java is that it should work the same regradless of platform, it is easy to work with and update.
The downside would of course be performance. But to be honest, we all now use machines that are far more powerful than even the fastest "true" Amiga. Well written, optimized Java code ought to fast enough for every conceivable task. This is after all an emulator, designed to run old software as if the platform were a piece of hardware now more than 10 years out of date, in all probability :¬)
I'd welcome any thouhts you have on the project and if you would like to be at all involved, I am more than happy to chat about that too. The alternative to Java for me, by the way, would be an x86 C/C++ based emulator. Sorry folks, I like my "PC" and I know the architecture very well as it is what I primarily program for. It would of course be targetted at 2K/XP and possibly NT4. Sorry again, to anyone interested who uses 9x OSes. They are not stable enough in themself to be worth my development time. I'd possibly consider a "post-dev port" but you would definitely be waiting a long time, as the entire development cycle would first have to complete for the NT version it would be ported from.
I look forward to more comments, John
-
I intend to design it to be cycle-exact, i.e. true emulation
Well, good luck! Especially since the number of cycles the CPU takes to execute code, or access data in chip ram depends on what else is accessing it; Disk drive, audio, bitplane, copper, sprite, and blitter DMA, CIAs, and other events can all hold the processor while they do their thing, and everything is tightly integrated and interwoven.
While you will have to break the emulation down into modules, to keep it cycle exact means that the modules have to be tightly integrated, with proper bus arbitration to ensure that all the demos and games work. I don't even know if there is accurate documentation of all the cycle timings is out there. Certainly talk to the UAE and CAPS teams as they will have invaluable information about this.
-
Aye, logically the approach has to be modular, since the chipset/CPU setup is inherently so. In fact it is already clearly and OO project. It does not get more "black box" or "Object Oriented" than "data into Blitter, Blitter does its thing, hand execution to next highest priority item" after all.
I suspect the way I will tackle the integration aspect is the addition of a new custom chip, in a way. Which handles all of the others, in as much as it will be responsible for bus arbitration, etc so as to keep the timings straight. I have found a fair bit of info, I own books full of info on the M68k itself, but the specific implementations in each Amiga could be more problematic, I am sure. I certainly shall be approaching the UAE team at some point, since I actually use their emulator myself for messing about on Hired Guns and a few other games whic either never made it to the PC or were much better implemented on the Amiga.
Any specific suggestions or comments? Thanks again for your reply.
John
-
I suspect the way I will tackle the integration aspect is the addition of a new custom chip, in a way. Which handles all of the others, in as much as it will be responsible for bus arbitration, etc so as to keep the timings straight.
I have virtually no knowledge of the innards of the 'miggy, so I'm probably wrong, but isn't that basically what Agnus/Alice does?
-
Hi John,
You will probably do well to start with the source code for Jasper (the Java Atari ST emulator). I forget the URL but Google will find it.
It has a great Java 68k emulator in it... as for the custom chips... their functions are pretty easy to emulate, but Good luck with all the timing crap that goes with it...
-EDIT- Ok here is the URL for that Java ST emulator... I'm too nice... thats my problem ;-)
http://www.atari-st.lovely.net/ (http://www.atari-st.lovely.net/)
-
Cheers mate! Muchly appreciated.
@ Alx.. umm, yeah probably I am too tired to think. But I suspect I will need to tweak that aspect anyway rather than straight emulation. Actually, isn't Alice the graphics one? Oh bugger. Anyway.
So, yeah, thanks again Matt, probably get on it over the next couple of day (I am bored at the minute) and see where it goes. The fun is going to be setting up a working Java IDE again (I buggered up the MS one I was using ages ago - I don't do Java as a rule and it was a specifically MS project, i.e. extensions) But if all fails I'll use notepad and the Sun SDK LOL
John
-
Here is another site that might help
http://amiga.emugaming.com/index.html
Cheers....
-
Actually, isn't Alice the graphics one?
It's not really that simple. All Amiga custom chips had additional functions. The Paula, for example, is known as the sound chip, but the U in its name means UART, and it is the floppy controller as well.
Alice is the name of the AGA version of Agnus, and Agnus is a DMA controller as well as handling parts of the graphic system.
-
I've just realised something the Amiga community needs. An old man at a campfire somewhere where people can go sit and listen about the lost tales of Amiga. A bit like the start of Monkey Island 2, though that was with two pirates rather than an old man.
Oh yeah, and the old man must be good at avoiding flamebait.
-
Gaidheal wrote:
Cheers mate! Muchly appreciated.
@ Alx.. umm, yeah probably I am too tired to think. But I suspect I will need to tweak that aspect anyway rather than straight emulation. Actually, isn't Alice the graphics one? Oh bugger. Anyway.
So, yeah, thanks again Matt, probably get on it over the next couple of day (I am bored at the minute) and see where it goes. The fun is going to be setting up a working Java IDE again (I buggered up the MS one I was using ages ago - I don't do Java as a rule and it was a specifically MS project, i.e. extensions) But if all fails I'll use notepad and the Sun SDK LOL
John
I hope you can get it to do something usefull (like run amiga software :-) ).. the Java ST emulator often just boots to the desktop and sometimes I can't get the mouse to work and other bugs too.
-
I hope you can get it to do something usefull (like run amiga software ).. the Java ST emulator often just boots to the desktop and sometimes I can't get the mouse to work and other bugs too.
Hehe, that sounds just like the STEmulator found on one of the early Fish disks.
Of course, that was the entire purpose of that emulator, stemming from the days of bitter feud between the two camps.
-
Hello again all! I return from the land of "Hangover" (too much Hoegaarden) with fresh enthusiasm for hobby software projects. I remember what (who?) Alice is shortly after posting, but thanks for the posted info. Any version publicly released will definitely be able to do a lot more than boot to a desktop and wiggle a mouse pointer, I assure you. Howver, before excitement reaches fever pitch (as if!) I should point out that any public release is months away, at least. Indeed currently there is no code at all and the design specs and docs are in my favourite top security storage repository (which recently suffered minor Hoegaarden damage...)
Matt - I grabbed your AROS build for i386, by the way, and it worked nicely once I disabled USB in the BIOS. Would not respond to keyboard or mouse until I did though. My setup is an RF keyboard and mouse, with the mouse on a USB port the keyboard PS/2, just in case that is of use to you. Looking forward to the fully functional version and any future releases.
If anyone is interested in supporting my hobby emulator (in any fashion), by the way, drop me a line at gaidheal@ntlworld.com and we'll chat some :¬)
So we are clear, it will be totally free, supported only the extent that I can be bothered, though probably open source anyway (i.e. support it yourself! Damn it!) and designed to give cycle-exact emulation of every Amiga model that was released, as well as allowing settings to then be tweaked so as to create a "Super 1200, Super 500+" etc. Test games include "Hired Guns" and "Space Crusade" (though my version of latter seems to be messed up..
Anyway, enough ramble.. John