this file contains a brief description of the various components of DarcNES and what files are associated with each component. it will be updated as time and inclination allows. that is to say, it may not be updated as often as it should. anyway, this will tell you much information that you could easily gain by looking at the comment at the top of each of the files in question. cpu interface: cal.c cal.h these are the interface to the various cpu cores. they provide a simpler api than directly working with the cores. they also allow using a variety of different styles of cpu core, such as Marat's and my own, which would normally be close to impossible to use interchangably. cpudefs.h this contains a few defines for which cpu cores should be supported in the cal. cpu cores: mtypes.h this contains some of the type definitions required for the "marat6502" and "maratz80" cores. m6502.c m6502.h m6502opc.h this is the "marat6502" core. it is a modified version of Marat's infamous m6502 code. mz80.c mz80.h mz80opc1.h mz80opc2.h mz80opc3.h mz80opc4.h mz80opc5.h this is the "maratz80" core. it is a modified version of Marat's infamous mz80 core. nes emulation: mappers.c mappers.h emulation for the nes mappers. nes.c nes.h basic routines for the nes driver. nes_ppu.c nes_ppu.h the nes vdp. nes_psg.c nes_psg.h nes sound emulation. nespal.c the nes palette. if you want to use a better one, here's where to put it. pc-engine emulation: pce.c the basic pc-engine driver. very preliminary. pce_vdp.c pce_vdp.h the pc-engine vdp. very preliminary. master system emulation: sms.c the basic master system driver. sms9918.c sms9918.h the master system vdp. sms_psg.c sms_psg.h sn76489 emulation (needs renaming). the rest: system.h tool.c tool.h the romloader, system autodetect, and such. machdep.h contains some defines that make porting to different systems slightly easier. blitters.S blitters.h custom graphics rendering routines. designed to be fairly fast and reasonably applicable to multiple vdp emulations. ui.h ui_allegro.c ui_x.c user interface stuff. all of it needs rewriting. video.h video_allegro.c video_svga.c video_x.c video interface stuff. most of it needs rewriting. zarzon.c the zarzon driver. I wouldn't bother with it much before I get the new GUI running if I were you. may not ever work properly.