Welcome, Guest. Please login or register.

Author Topic: Amiga emulator development  (Read 5022 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Amiga emulator development
« on: July 08, 2003, 02:29:36 AM »
OK, shifting my focus here, from the hardware forum for my posts on this topic..

For those who have not caught my earlier thread, I am going to start develoment on an Amiga emulator.  It's a hobby project which means a couple of things:

1.  No guarantees whatsoever are likely to be given as to fitness of purpose, etc, etc.

2.  It will develop as fast or as slow as it needs to be in order for other things in my life to get proper attention.

3.  It will be totally FREE and come with a licence likely very similar to the one with AROS, Mozilla, etc.

The Spec:

It is my intention to emulate every model of Amiga that was officially released in the UK.  I intend to do so "cycle exact" and allowing 'naughty' applications to "hit the hardware" (they won't be, of course, but they'll never know - trust me!).  I also intend to allow those so inclined to tweak at will with relative speeds, functionality of chips, and so on, such that they can make "Super 1200" "Custom A500" and so on configurations if they wish.. up to and including running the emulator at the highest speed their system allows a high priority thread to run at.

OK, so what WON'T it do?  It won't run on Windows 9x (That is 95, 98, 98 SE & ME so we are clear).  It probably won't run on NT4 and below either, but I'll see.  Why?  Mostly because I use and develop for NT5 (2000 & XP) but also because 9x is simply unstable anyway, attempting to develop a complex 'low level' emulator that runs on it seems like a really difficult job and risky proposition for the system.  It also will be targetted at x86 chips, obviously.  I intend to implement any optimizations for such things as MMX, SSE, 3Dnow!  and so on, that I can, so faster, newer processors will be worth having.  But it ought, when finished, to run on any machine you were able to get 2000/XP onto.  It also WILL NOT BE AN OPERATING SYSTEM REPLACEMENT.  You will need a (presumably!) legal copy of an NT5 based OS to run it.  I MAY develop a port for 9x when I am satisfied with the NT version, but don't count on it.. and you really would be well advised to either get NT or switch families altogether, e.g. OS X (which is very good, but which I do not currently target).

Right.. so you read all the disclaimers and still think you might be interested?  In fact you think you'd like to help perhaps, but don't know how?  This bit is for you:

I welcome any constructive comments and criticisms.

I am more than happy to set up a small team, so long as we can contact each other reasonably easily.  Within Europe is fine, outside of Europe and I have to wonder about feasibility, but I won't ignore it out of hand (sorry yanks!).

If you feel you want to support financially (well, you MIGHT!!) hold fire, because at present there are no costs associated with it, e.g. hosting, it is purely my hobby.  I really do program for fun as well as work.

OK, so are not a coder, you are interested and you now know that you cannot help me with cash (well, you can if you really want, but it is not needed!) so is there anything else you could do to help me?  Sure, read on some more...

I am not much of artist.  Buttons, loadscreens, that kind of thing I can certainly use help on, though probably not until quite late into the project.  Although being there at the start has a lot of merit.

Once off the ground, it will need testing, preferrably on every possible harware/software combination.  So people prepared to simply download, install and then attempt to 'break' it can also be very helpful.

Finally, encouragement, if in fact this is something you do want to see happen, should not be underestimated.  Especially as regards any feature you feel strongly about, lest it get overlooked.

Well, after that mini-essay I feel as though I have said every that needs to be.. I am however undoubtedly wrong.. so please, let me know!  :¬)

John

edit:  turned on email notification, since it seems sensible.
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #1 on: July 08, 2003, 02:49:34 AM »
It's a hobby :¬)  How worthwhile is any hobby?  Heh!

As for JIT, I don't intend to use it.  Indeed since my first musings, I think I have pretty solidly decided on an x86 native/NT 5 targetted application.  In part because of such issues, but also because it will have all the functionality I want from the project, while being pretty easy for me to code.  If people violently disagree with my reasoning, I will certainly rethink it... but failing that, what I said earlier stands - NT5 on an x86.

As for WinUAE - I use it.  It's pretty good and I have no intention of 'slagging it off'.  However, infallible it is not.  And the point of my project is different, I think to theirs.  Mine is more for personal enjoyment and experience, than providing an emulation solution for all former Amiga users (the original vision, pretty much, of the UAE team).

Getting technical, as far as is possible when there is still no code!  The Virtual Custom Chipsets will require some careful (and dare I say it, clever!) coding in order to get the timing right anyway.  The language used probably would not make much difference to REALTIVE timings which is what we are talking about for the time critical stuff, as far as I can see at this point.  C/C++ will of course be faster than Java on an x86, at least with my C/C++ compilers.  So, when you "take all the brakes off" the native version would be quicker at a task than the JVM version.  However, part of the point of the emulator is to give a faithful reproduction of each machine set up, down to the cycle-exact timing level.  So for that it wouldn't matter, as regards speed.

John
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #2 on: July 08, 2003, 04:47:15 PM »
Heh!  I go to bed and suddenly everyone comes out of the woodwork... ok so I probably just stay up far too late....

Alright, read through the comments and was interested by a few..  as regards reinventing the wheel.. not really.  I intend to do a few things that UAE (for all that it is good, and remember *I* use it myself!)  does not do.  At the very "beginner" end, for example I am going to have single button configuration for every Amiga machine as released in the UK.  I.e. Click "A500" and you get OCS, 2Mb, etc.  You get the idea, I am sure.  I am also going to allow people to tweak behind the scenes with things which may well break the emulation actually... but it is up to them, for example, swapping out an "Alice" for an earlier custom chip.  Why?  Because this is an interest of mine (emulation) rather than because I think it is NEEDED.  However, it MIGHT be useful to some, hence my even mentioning doing it.

If you want to roll (pun intended) with the wheel analogy.. HGVs and Minis use somewhat different wheels, even though both rely on wheels.

PPC - OK, point taken... giving it serious thought as getting hold of PPC hardware is easy for me, as well as old Mac 68k hardware and my friend (and co-developer on another project - one that will actually pay) is a Mac user with OS9 and OS X as well as a couple of Macs.  As for target environment..... no, sorry I won't be targetting Linux, I don't actually think it is worth the effort.  Linux, exciting as it is for what it is, is not a serious platform, imo.  FreeBSD is better from where I am standing, but both are serious niche markets.  Also distribution, kernel build, etc play far too large a role in whether something works as expected on Linux.  On the other hand... if I talk to Matt.. AROS may well be viable.  Allowing you the kind of "If it ever was supposed to run for an Amiga, it will run on this" kind of functionality I think was being requested.

Finally, wasteful?  Well so is playing football.  You want to play football, be my guest (I prefer rugby, TKD and Kung Fu) I shall stick to programming as my waste of time :¬)

John

P.S.  UAE will not feature in it at all, for a whole host of reasons it is not suitable as a codebase, in general.  But it has of course given a clear picture of things that are already present and would need to be replicated in some fashion.
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #3 on: July 08, 2003, 06:21:12 PM »
Well, for a start the one click setup is not offered anywhere else I have seen :¬)  Nor, as I recall, is UAE fully cycle-exact.

As for the A500, I know.. it was not meant to be accurate, simply to make the point :¬)

As an update though.. briefly exchanged thoughts with Matt (of AROS) and there is a distinct possibility of me building the type "sandbox UAE" emulation discussed at various times for AROS.  Obviously it would not in this case be UAE, but an entirely new (or at least different) emulator coded by myself and whomever else was involved.  Nothing solid at all yet, though, so keep commenting and don't start telling all your friends that AROS is going to have its own emulation mode!!

John
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #4 on: July 08, 2003, 07:29:11 PM »
The implication that my existing idea is not useful is a bit silly...  I have no interest in targetting AmigaOS (if you really want to know why:  I was not impressed with the way Commodore and then Amiga Technologies handled the market and I have never coded for the Amiga anyway.  I am also looking into targetting AROS instead, thus AmigaOS developers would be perfectly free to adapt the code for themselves).

I hope that this directly answers your question.  Incidentally, since AmigaOS4 is not out yet, short of joining their development team it would be difficult to target it anyway and I have no interest in targetting "legacy" platforms as a rule (notice that I do not target Win9x, for example).

John

edit:  due to my ISP cocking up Matt beat me to the punch, without me ever knowing LOL
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #5 on: July 09, 2003, 03:16:39 AM »
@mdwh2:

The fact you are describing how it could be made to do it, by definition means it does not do it.. as for how useful it is.. in the software industry most companies tend to work to the lines of "Assume the user will never read the manual and is so stupid it is a miracle they found the ON switch"  which is to say that presenting someone with a screen that has buttons marked "A1000" "A2000" "A500" "A500+" etc, actually IS useful and probably welcomed by many less technical users who just want a "once click installation" type solution for their PC that will enable them to play all their old Amiga games.  Whilst I like WinUAE noone could accuse it of being overly user friendly.  Indeed I have helped other people find the executable and make shortcuts to it, when they have approached me and claimed that "It did not install.. it did some stuff on the disk and then went back to the desktop"  User friendly?  I don't think so.  Intuitive?  Not in theleast.  My preference?  Aye, because my desktop and menus are cluttered enough and I know how to make shortcuts.. but I am not "Mr Generic User"  Point made?  Bloody hope so!

@DethKnight:

Absolutely, I use XP but also have machines running 2K Corporate (and other OSes too, of course, but they are not relevant right now).  So it will definitely get tested on your setup.  Also, if when I get some code together worth the effort, you'd like to be a guinea pig.. I mean "Professional Quality Assurance Operative" I'd be more than willing to send it to you.

Re: AROS - nothing firm yet, but by way of giving you background;  I was extremely impressed with AROS, even the really simple x86 native CD-RW build.  Given how close to actual completion the project is, I am already planning a full migration for my main development machine, since it is so well designed and very uncluttered (contrast that with Windows....) as well as a truly portable and well supported OS.  It'd be nice if it were to become THE desktop OS, but I have seen at least three different groups of 'zealots' aim for that one in the last decade or so and I am still using NT :¬)

John

P.S.  Noone is likely to dampen my entusiasm, since it is born out of a naturally overactive metabolism, confidence in my ability and sheer arrogance!

P.P.S.  "If it's no Scottish, it's crap!"

P.P.P.S  Bedtime, methinks...
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #6 on: July 09, 2003, 05:25:46 PM »
@mdwh2

Actually, you claimed I had proposed nothing which UAE does not already do.  I pointed out a couple of things that in fact show this is not so.  One is arguablt trivial (though not to less technical users) and the other less so (truly cycle exact hardware emulation).  To point out that my emulator does not exist is rather superfluous when we are discussing features that are to be present, as well.  And your fixation on it as a rival to UAE is a bit hard for me to grasp, since they are coming from totally different angles.  Especially with what I am going to say below..

@Hammer

Yes, 2003 Server will retain all the same API calls, so MS lead me to believe.  Thus applications written for 2000 or XP should run with no modification on it.  It is also going to include (out of the box) version 1.1 at least of the infamous .Net so if I chose to write for .Net instead of the native (to previous Windows versions at least) API that would also work.  I won't be at this though.  Yes, I have heard of Winfellow but not used it.  As regards "hush pattern" support, I am taking it under advisement :¬)

@mesagl

Because it will be OO, it will almost by definition be an SDK of sorts.  This is because each of my "Virtual Custom Chip" objects is going to need to present an interface to other objects wishing to address it.  It's likely that only very specific objects will actually be allowed to do so, but the "look" from the point of view of a programmer will be of an extension to the well known API paradigm.  As for separate branches, not necessarily.. at least not that separate, but as you say, identical interface, except where a one is a superset.  Differing implementation as needed, at the core level.

Now.. the (?) exciting bit..  I have decided that a major, possibly THE major thrust of the project is going to be total integration with AROS.  That is to say I shall be joining other developers on the AROS project, specifically to implement "Seamless Legacy Amiga Emulation" in AROS.  Matt emailed me and expressed an entirely similar vision of how this ought to behave:

"OS legal" emulation will happen within windows which are treated exactly like any other in AROS, i.e. same colour borders, etc, etc.  "OS legal" means that the application only makes legitimate calls to AOS, no attempts at directly talking to the hardware (incidentally, though I am sure most are aware of this, it is that which makes most games 'broken' on simple emulators and ports of AOS).

"Hardware Emulation mode" will be fullscreen, require high thread priority and a lot more resources, but given the power of the likely platforms, the efficiency of AROS and the relatively undemanding nature (by comparison with today's software) of most programmes that will need it, performance should not be an issue at all.  It just might not "play nice" if you want to run other tasks.  In as much as, you may get the standard Windows approach of "Close all other applications, etc, etc"

I have received several requests for PPC emulation and this is also under advisement.

John
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #7 on: July 09, 2003, 08:45:03 PM »
iIn WinUAE that is certainly possible, I'd imagine so in others too.. admittedly the emulation pauses while the "open diskfile" window is up, but essentially, you simply press END+F1 to F4 (df0 - df3).

In AROS (once I/we have written the emulation), ultimately it should simply be a case of mounting an ADF image or inserting a diskette with the binaries on, in a format readable on the platform hardware.

John
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #8 on: July 09, 2003, 09:08:22 PM »
Right on Matt :¬)

Yes folks, on the dev-list now for AROS, expect reasonably regular updates on any progress.  Remember, as it stands it's just me and I cannot possibly go "full time" on this.  NT5 fans, don't fret, that aspect will not in any way suffer as a result of this new goal.  The same routines that will (hopefully!) form the basis for AROS's emulation will also form the basis of the free NT5 Amiga emulator I planned  :¬)

PPC... still thinking about it.. here is the situation, as I understand it;  AROS lacks PPC support because despite high demand, noone is coming forward to develop AROS for PPC.  Equally, I have never targetted PPC myself and will therefore not be doing so in a hurry for a free emulator.  Now.. I have received messages about it, which indicates DEMAND... so if you are out there as a PPC developer and want to help me out with that aspect, it might well happen.  Failing that, it will only happen, probably, as an "upgrade" of sorts to an otherwise working emulator.

John
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]
 

Offline GaidhealTopic starter

  • Full Member
  • ***
  • Join Date: Jul 2003
  • Posts: 192
    • Show all replies
Re: Amiga emulator development
« Reply #9 on: July 09, 2003, 09:32:14 PM »
Heh!  If PPC is running AROS I guarant... wait.. I reckon so :¬)

The requests I am getting are for me to EMULATE A PPC machine... (unless I have totally misunderstood them.. which is possible :¬) )

John
[color=3300FF]Gaidheal[/color][/b][color=0066CC] - \\"The Emulator Guy\\"[/color][/i]