diff --git a/aegisub/docs/doxygen/Layout.xml b/aegisub/docs/doxygen/Layout.xml
new file mode 100644
index 000000000..b3c4c9909
--- /dev/null
+++ b/aegisub/docs/doxygen/Layout.xml
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aegisub/docs/doxygen/css.css b/aegisub/docs/doxygen/css.css
new file mode 100644
index 000000000..09b7fc4ef
--- /dev/null
+++ b/aegisub/docs/doxygen/css.css
@@ -0,0 +1,21 @@
+/* $Id$ */
+
+.note, .warning, .caution {
+ margin: 0.5em;
+ padding: 0.5em 0.5em;
+ word-wrap: break-word;
+}
+
+.note {
+ border: 1px solid #F9FD96;
+ background-color: #FDFEE7;
+}
+
+.caution {
+ border: 1px solid #FF4A66;
+ background-color: #FFF5F6;
+}
+
+.warning {
+ border: 1px solid #FF4A66;
+}
diff --git a/aegisub/docs/doxygen/doxyfile b/aegisub/docs/doxygen/doxyfile
new file mode 100644
index 000000000..6abf3aa7f
--- /dev/null
+++ b/aegisub/docs/doxygen/doxyfile
@@ -0,0 +1,260 @@
+# Doxyfile 1.5.8
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = Aegisub
+PROJECT_NUMBER = 1
+OUTPUT_DIRECTORY = $(OUTPUT_DIR)
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = YES
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH = $(SRC_TRIM)
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+QT_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = YES
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 4
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = NO
+OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
+EXTENSION_MAPPING =
+BUILTIN_STL_SUPPORT = YES
+CPP_CLI_SUPPORT = YES
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = YES
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+TYPEDEF_HIDES_STRUCT = NO
+SYMBOL_CACHE_SIZE = 0
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = YES
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = YES
+EXTRACT_ANON_NSPACES = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_GROUP_NAMES = NO
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_DIRECTORIES = NO
+SHOW_FILES = YES
+SHOW_NAMESPACES = YES
+#FILE_VERSION_FILTER = docs/versionfilter.sh
+LAYOUT_FILE = Layout.xml
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE = doxygen.log
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = ../../
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS = *.h *.cpp *.c *.dox
+RECURSIVE = YES
+#EXCLUDE = .svn .deps .libs boost gl msvc libass universalchardet
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS = */.svn* */.deps* */.libs* */boost/* */scripts/* */gl/* */msvc/* */libass/* */universalchardet/* */packages/* */po/* */build/* */libffms/* */tools/* */libresrc/* */tinderbox/* \
+ */libosxutil/bundledirs-test.c acconf.h
+EXCLUDE_SYMBOLS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+# FIXME: set these two to NO?
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = ./
+HTML_FILE_EXTENSION = html
+HTML_HEADER = html_header.html
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+HTML_DYNAMIC_SECTIONS = NO
+GENERATE_DOCSET = NO
+DOCSET_FEEDNAME = "Doxygen generated docs"
+DOCSET_BUNDLE_ID = org.doxygen.Project
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+CHM_INDEX_ENCODING =
+BINARY_TOC = NO
+TOC_EXPAND = NO
+GENERATE_QHP = NO
+QCH_FILE =
+QHP_NAMESPACE =
+QHP_VIRTUAL_FOLDER = doc
+QHP_CUST_FILTER_NAME =
+QHP_CUST_FILTER_ATTRS =
+QHP_SECT_FILTER_ATTRS =
+QHG_LOCATION =
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = NONE
+TREEVIEW_WIDTH = 250
+FORMULA_FONTSIZE = 10
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = NO
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+MSCGEN_PATH =
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = NO
+DOT_FONTNAME = FreeSans
+DOT_FONTSIZE = 10
+DOT_FONTPATH =
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = NO
+GROUP_GRAPHS = NO
+UML_LOOK = NO
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = NO
+INCLUDED_BY_GRAPH = NO
+CALL_GRAPH = NO
+CALLER_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+DOT_GRAPH_MAX_NODES = 50
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Options related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
diff --git a/aegisub/docs/doxygen/gen.sh b/aegisub/docs/doxygen/gen.sh
new file mode 100755
index 000000000..5d0c1533d
--- /dev/null
+++ b/aegisub/docs/doxygen/gen.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $Id$
+#
+
+if test -z "$1"; then
+ export OUTPUT_DIR="./output"
+else
+ export OUTPUT_DIR="$1"
+fi
+
+mkdir -vp "${OUTPUT_DIR}"
+cp -v css.css "${OUTPUT_DIR}"
+
+SRC_PWD=`pwd|sed "s|/docs/doxygen||"`
+export SRC_TRIM="${SRC_PWD}/src/"
+
+doxygen doxyfile
diff --git a/aegisub/docs/doxygen/html_header.html b/aegisub/docs/doxygen/html_header.html
new file mode 100644
index 000000000..6f2414839
--- /dev/null
+++ b/aegisub/docs/doxygen/html_header.html
@@ -0,0 +1,12 @@
+
+
+
+ $title
+
+
+
+
+
+
+
+
diff --git a/aegisub/docs/doxygen/pages/index.dox b/aegisub/docs/doxygen/pages/index.dox
new file mode 100644
index 000000000..5753687e7
--- /dev/null
+++ b/aegisub/docs/doxygen/pages/index.dox
@@ -0,0 +1,5 @@
+/** @mainpage
+
+Main page contents go here.
+
+*/
diff --git a/aegisub/docs/doxygen/pages/license.dox b/aegisub/docs/doxygen/pages/license.dox
new file mode 100644
index 000000000..7cb85c364
--- /dev/null
+++ b/aegisub/docs/doxygen/pages/license.dox
@@ -0,0 +1,5 @@
+/** @page License Aegisub License
+
+@verbinclude "../../LICENCE"
+
+*/
diff --git a/aegisub/docs/doxygen/pages/source.dox b/aegisub/docs/doxygen/pages/source.dox
new file mode 100644
index 000000000..04a486e51
--- /dev/null
+++ b/aegisub/docs/doxygen/pages/source.dox
@@ -0,0 +1,88 @@
+/**
+@defgroup audio_input Audio Input
+@defgroup audio_output Audio Output
+@defgroup audio_ui Audio UI
+@defgroup build Files used in building Aegisub.
+@defgroup configuration_ui Configuration Ui
+@defgroup custom_control Custom Control
+@defgroup export Export
+@defgroup ffms FFmpegSource support.
+@defgroup ffms2 FFmpegSource2 support.
+@defgroup font_collector Font collector
+@defgroup kanji_timer Kanji Timer
+@defgroup libosxutil libosxutil
+@defgroup main Main
+@defgroup main_headers Main Headers
+@defgroup main_ui Main UI
+@defgroup matroska Matroska support.
+@defgroup quicktime QuickTime support.
+@defgroup scripting Scripting
+@defgroup secondary_ui Secondary UI
+@defgroup spelling Spelling
+@defgroup style_editor Style Editor
+@defgroup subs_storage Subtitle Storage
+@defgroup subtitle_io Subtitle I/O
+@defgroup subtitle_rendering Subtitle Rendering
+@defgroup thesaurus Thesaurus
+@defgroup tools_ui Tools UI
+@defgroup unused Unused
+@defgroup utility Utility
+@defgroup video Video
+@defgroup video_input Video Input
+@defgroup video_output Video Output
+@defgroup visual_ts Video Typesetting
+@defgroup vobsub VobSub
+
+*/
+
+/**
+ @page srcguide Aegisub Source Guide
+
+Main
+ - @ref main
+ - @ref main_headers
+ - @ref main_ui
+ - @ref configuration_ui
+ - @ref custom_control
+ - @ref export
+ - @ref scripting
+ - @ref secondary_ui
+ - @ref subs_storage
+
+Library
+ - @ref ffms
+ - @ref ffms2
+ - @ref quicktime
+ - @ref matroska
+
+Dialogues
+ - @ref font_collector
+ - @ref kanji_timer
+ - @ref spelling
+ - @ref style_editor
+ - @ref thesaurus
+ - @ref visual_ts
+
+Miscellanous
+ - @ref build
+ - @ref tools_ui
+ - @ref unused
+ - @ref utility
+ - @ref libosxutil
+
+Subtitle
+ - @ref subtitle_io
+ - @ref subtitle_rendering
+ - @ref vobsub
+
+Audio
+ - @ref audio_input
+ - @ref audio_output
+ - @ref audio_ui
+
+Video
+ - @ref video
+ - @ref video_input
+ - @ref video_output
+*/
+