> I really don't know where this "UAE isn't modular" meme is coming frmo. I realize that I never tried to explain what I had in mind. Do you think such a model would be possible for uae ? : - There would be a core for UAE. Everything in the core is crossplatform. This is the playground of amiga hardware gurus. Some plugins are registered to the core, and the core sends and/or receive I/O through the plugins. - There are plugins for all host/guest I/O that could register to the core. (like winamp in_ out_ plugins) Ex: sound_output : out_sound_directsound, out_sound_oss, out_sound_alsa, out_sound_mac, ... gfx_output : out_gfx_directx, out_gfx_opengl, out_gfx_sdl, ... port0_input : in_port_joystick, in_port_mouse, in_port_wheel, ... port1_input : in_port_joystick, in_port_mouse, in_port_wheel, ... storage_input: in_storage_adf, in_storage_hdfile, in_storage_scsi, in_storage_cdrom, in_storage_hddevice, ... - Every interaction that could be made with the core ( changing settings cpu, mem, disks, reset, ... ) or with the registered plugins (that has their own settings eg: swap disk for in_storage_adf) could be made using a "command pipe". I don't know how this is called. I mean a cross platform, and if possible, technology agnostic way to talk to the core (like mplayer stdin/out) or a simple api, but it should be able to use by a scripting language or compiled language without being statically linked. There could be seperated GUI for win32, linux, mac, or a cross platform GUI, ... it does not care anymore. It's even possible for people to make third party front-ends. I really don't know if all this is possible. By example, I don't know if you use blits inside sdl/directx or if you just generate each screen frame in a gfx library dependency free way then just flip and update the screen using the gfx lib, or if the way to generate a screen frame is dependant to the gfx lib. This could be a stopper. For the sound, I guess it's already abstracted, It's just mixing so I guess it's not a stopper. In this case it should just use the sound_output's plugin mixer facilities instead of the current abstraction. Anyway, if what I say is stupid, non-sense, impossible, science fiction or if it's just too much work, please say it to me and I'll never speak about this again. -- Fabien Meghazi Website: http://www.amigrave.com Email: agr@xxxxxxxxxxxx IM: amigrave@xxxxxxxxx