\hypertarget{classComSquare_1_1SNES}{}\doxysection{Com\+Square\+::S\+N\+ES Class Reference} \label{classComSquare_1_1SNES}\index{ComSquare::SNES@{ComSquare::SNES}} Container of all the components of the \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. {\ttfamily \#include $<$S\+N\+E\+S.\+hpp$>$} Collaboration diagram for Com\+Square\+::S\+N\+ES\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{classComSquare_1_1SNES__coll__graph} \end{center} \end{figure} \doxysubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classComSquare_1_1SNES_a19bd074baaa9d5daca451662e1e58455}{S\+N\+ES}} (\mbox{\hyperlink{classComSquare_1_1Renderer_1_1IRenderer}{Renderer\+::\+I\+Renderer}} \&renderer) \begin{DoxyCompactList}\small\item\em Create all the components using a common memory bus for all of them. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1SNES_afc5a9e799a562e15a98758d036acbfe5}{S\+N\+ES}} (const std\+::string \&ram\+Path, \mbox{\hyperlink{classComSquare_1_1Renderer_1_1IRenderer}{Renderer\+::\+I\+Renderer}} \&renderer) \begin{DoxyCompactList}\small\item\em Create all the components using a common memory bus for all of them and load a rom. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1SNES_aba16d3bab5c1940703d0340b33b136be}{S\+N\+ES}} (const \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} \&)=delete \begin{DoxyCompactList}\small\item\em A \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} is not copyable. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} \& \mbox{\hyperlink{classComSquare_1_1SNES_a4b1a5934c6ceacc1b8ff616fc38dffe1}{operator=}} (const \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} \&)=delete \begin{DoxyCompactList}\small\item\em A \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} can\textquotesingle{}t be assigned. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1SNES_a0dc138029f9cfb48ed915b6f18c5bed9}{$\sim$\+S\+N\+ES}} ()=default \begin{DoxyCompactList}\small\item\em A default destructor. \end{DoxyCompactList}\item void \mbox{\hyperlink{classComSquare_1_1SNES_af4e957c79c78384de75d474649e6085e}{update}} () \begin{DoxyCompactList}\small\item\em Call this function to update all the components. \end{DoxyCompactList}\item void \mbox{\hyperlink{classComSquare_1_1SNES_a91065a5f3d8eb2c6e851664a79b36358}{load\+Rom}} (const std\+::string \&path) \begin{DoxyCompactList}\small\item\em Load the rom at the given path. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection*{Public Attributes} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryBus}{Memory\+::\+Memory\+Bus}} \mbox{\hyperlink{classComSquare_1_1SNES_ad5104b936d433809ee12fae4c3107be2}{bus}} \begin{DoxyCompactList}\small\item\em The memory bus that map addresses to components. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1Cartridge_1_1Cartridge}{Cartridge\+::\+Cartridge}} \mbox{\hyperlink{classComSquare_1_1SNES_a95f573e9fe21966f1502eeb924592e3a}{cartridge}} \begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{namespaceComSquare_1_1Cartridge}{Cartridge}} containing instructions (R\+OM). \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1Ram_1_1Ram}{Ram\+::\+Ram}} \mbox{\hyperlink{classComSquare_1_1SNES_ac9fb24ae8f20645e2a1b620c916f60cd}{wram}} \begin{DoxyCompactList}\small\item\em Work \mbox{\hyperlink{namespaceComSquare_1_1Ram}{Ram}} shared by all the components. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1Ram_1_1Ram}{Ram\+::\+Ram}} \mbox{\hyperlink{classComSquare_1_1SNES_a9590d9c4137245a063610986c1cb9a51}{sram}} \begin{DoxyCompactList}\small\item\em Save \mbox{\hyperlink{namespaceComSquare_1_1Ram}{Ram}} residing inside the \mbox{\hyperlink{namespaceComSquare_1_1Cartridge}{Cartridge}} in a real \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1CPU_1_1CPU}{C\+P\+U\+::\+C\+PU}} \mbox{\hyperlink{classComSquare_1_1SNES_aff55148cc1bfd0b1340585ae2efccb36}{cpu}} \begin{DoxyCompactList}\small\item\em Central Processing Unit of the \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1PPU_1_1PPU}{P\+P\+U\+::\+P\+PU}} \mbox{\hyperlink{classComSquare_1_1SNES_a87bb2fd5541aac124c39e971ed64aa99}{ppu}} \begin{DoxyCompactList}\small\item\em Picture Processing Unit of the \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \end{DoxyCompactList}\item \mbox{\hyperlink{classComSquare_1_1APU_1_1APU}{A\+P\+U\+::\+A\+PU}} \mbox{\hyperlink{classComSquare_1_1SNES_a966e334e0bb8af2e16c9c18227aa34e6}{apu}} \begin{DoxyCompactList}\small\item\em Audio Processing Unit if the \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} Container of all the components of the \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \doxysubsection{Constructor \& Destructor Documentation} \mbox{\Hypertarget{classComSquare_1_1SNES_a19bd074baaa9d5daca451662e1e58455}\label{classComSquare_1_1SNES_a19bd074baaa9d5daca451662e1e58455}} \index{ComSquare::SNES@{ComSquare::SNES}!SNES@{SNES}} \index{SNES@{SNES}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{SNES()}{SNES()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}} {\footnotesize\ttfamily Com\+Square\+::\+S\+N\+E\+S\+::\+S\+N\+ES (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classComSquare_1_1Renderer_1_1IRenderer}{Renderer\+::\+I\+Renderer}} \&}]{renderer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}} Create all the components using a common memory bus for all of them. \begin{DoxyParams}{Parameters} {\em renderer} & The renderer to use. \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classComSquare_1_1SNES_afc5a9e799a562e15a98758d036acbfe5}\label{classComSquare_1_1SNES_afc5a9e799a562e15a98758d036acbfe5}} \index{ComSquare::SNES@{ComSquare::SNES}!SNES@{SNES}} \index{SNES@{SNES}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{SNES()}{SNES()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}} {\footnotesize\ttfamily Com\+Square\+::\+S\+N\+E\+S\+::\+S\+N\+ES (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{ram\+Path, }\item[{\mbox{\hyperlink{classComSquare_1_1Renderer_1_1IRenderer}{Renderer\+::\+I\+Renderer}} \&}]{renderer }\end{DoxyParamCaption})} Create all the components using a common memory bus for all of them and load a rom. \begin{DoxyParams}{Parameters} {\em ram\+Path} & The rom to load. \\ \hline {\em renderer} & The renderer to use. \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classComSquare_1_1SNES_aba16d3bab5c1940703d0340b33b136be}\label{classComSquare_1_1SNES_aba16d3bab5c1940703d0340b33b136be}} \index{ComSquare::SNES@{ComSquare::SNES}!SNES@{SNES}} \index{SNES@{SNES}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{SNES()}{SNES()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}} {\footnotesize\ttfamily Com\+Square\+::\+S\+N\+E\+S\+::\+S\+N\+ES (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}} A \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} is not copyable. \mbox{\Hypertarget{classComSquare_1_1SNES_a0dc138029f9cfb48ed915b6f18c5bed9}\label{classComSquare_1_1SNES_a0dc138029f9cfb48ed915b6f18c5bed9}} \index{ComSquare::SNES@{ComSquare::SNES}!````~SNES@{$\sim$SNES}} \index{````~SNES@{$\sim$SNES}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{$\sim$SNES()}{~SNES()}} {\footnotesize\ttfamily Com\+Square\+::\+S\+N\+E\+S\+::$\sim$\+S\+N\+ES (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}} A default destructor. \doxysubsection{Member Function Documentation} \mbox{\Hypertarget{classComSquare_1_1SNES_a91065a5f3d8eb2c6e851664a79b36358}\label{classComSquare_1_1SNES_a91065a5f3d8eb2c6e851664a79b36358}} \index{ComSquare::SNES@{ComSquare::SNES}!loadRom@{loadRom}} \index{loadRom@{loadRom}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{loadRom()}{loadRom()}} {\footnotesize\ttfamily void Com\+Square\+::\+S\+N\+E\+S\+::load\+Rom (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{path }\end{DoxyParamCaption})} Load the rom at the given path. \begin{DoxyParams}{Parameters} {\em rom} & The path of the rom. \\ \hline \end{DoxyParams} \begin{DoxyExceptions}{Exceptions} {\em \mbox{\hyperlink{classComSquare_1_1InvalidRomException}{Invalid\+Rom\+Exception}}} & If the rom is invalid, this exception is thrown. \\ \hline \end{DoxyExceptions} \mbox{\Hypertarget{classComSquare_1_1SNES_a4b1a5934c6ceacc1b8ff616fc38dffe1}\label{classComSquare_1_1SNES_a4b1a5934c6ceacc1b8ff616fc38dffe1}} \index{ComSquare::SNES@{ComSquare::SNES}!operator=@{operator=}} \index{operator=@{operator=}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{operator=()}{operator=()}} {\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}\& Com\+Square\+::\+S\+N\+E\+S\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}} A \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}} can\textquotesingle{}t be assigned. \mbox{\Hypertarget{classComSquare_1_1SNES_af4e957c79c78384de75d474649e6085e}\label{classComSquare_1_1SNES_af4e957c79c78384de75d474649e6085e}} \index{ComSquare::SNES@{ComSquare::SNES}!update@{update}} \index{update@{update}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{update()}{update()}} {\footnotesize\ttfamily void Com\+Square\+::\+S\+N\+E\+S\+::update (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} Call this function to update all the components. \doxysubsection{Member Data Documentation} \mbox{\Hypertarget{classComSquare_1_1SNES_a966e334e0bb8af2e16c9c18227aa34e6}\label{classComSquare_1_1SNES_a966e334e0bb8af2e16c9c18227aa34e6}} \index{ComSquare::SNES@{ComSquare::SNES}!apu@{apu}} \index{apu@{apu}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{apu}{apu}} {\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1APU_1_1APU}{A\+P\+U\+::\+A\+PU}} Com\+Square\+::\+S\+N\+E\+S\+::apu} Audio Processing Unit if the \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \mbox{\Hypertarget{classComSquare_1_1SNES_ad5104b936d433809ee12fae4c3107be2}\label{classComSquare_1_1SNES_ad5104b936d433809ee12fae4c3107be2}} \index{ComSquare::SNES@{ComSquare::SNES}!bus@{bus}} \index{bus@{bus}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{bus}{bus}} {\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryBus}{Memory\+::\+Memory\+Bus}} Com\+Square\+::\+S\+N\+E\+S\+::bus} The memory bus that map addresses to components. \mbox{\Hypertarget{classComSquare_1_1SNES_a95f573e9fe21966f1502eeb924592e3a}\label{classComSquare_1_1SNES_a95f573e9fe21966f1502eeb924592e3a}} \index{ComSquare::SNES@{ComSquare::SNES}!cartridge@{cartridge}} \index{cartridge@{cartridge}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{cartridge}{cartridge}} {\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1Cartridge_1_1Cartridge}{Cartridge\+::\+Cartridge}} Com\+Square\+::\+S\+N\+E\+S\+::cartridge} \mbox{\hyperlink{namespaceComSquare_1_1Cartridge}{Cartridge}} containing instructions (R\+OM). \mbox{\Hypertarget{classComSquare_1_1SNES_aff55148cc1bfd0b1340585ae2efccb36}\label{classComSquare_1_1SNES_aff55148cc1bfd0b1340585ae2efccb36}} \index{ComSquare::SNES@{ComSquare::SNES}!cpu@{cpu}} \index{cpu@{cpu}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{cpu}{cpu}} {\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1CPU_1_1CPU}{C\+P\+U\+::\+C\+PU}} Com\+Square\+::\+S\+N\+E\+S\+::cpu} Central Processing Unit of the \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \mbox{\Hypertarget{classComSquare_1_1SNES_a87bb2fd5541aac124c39e971ed64aa99}\label{classComSquare_1_1SNES_a87bb2fd5541aac124c39e971ed64aa99}} \index{ComSquare::SNES@{ComSquare::SNES}!ppu@{ppu}} \index{ppu@{ppu}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{ppu}{ppu}} {\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1PPU_1_1PPU}{P\+P\+U\+::\+P\+PU}} Com\+Square\+::\+S\+N\+E\+S\+::ppu} Picture Processing Unit of the \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \mbox{\Hypertarget{classComSquare_1_1SNES_a9590d9c4137245a063610986c1cb9a51}\label{classComSquare_1_1SNES_a9590d9c4137245a063610986c1cb9a51}} \index{ComSquare::SNES@{ComSquare::SNES}!sram@{sram}} \index{sram@{sram}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{sram}{sram}} {\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1Ram_1_1Ram}{Ram\+::\+Ram}} Com\+Square\+::\+S\+N\+E\+S\+::sram} Save \mbox{\hyperlink{namespaceComSquare_1_1Ram}{Ram}} residing inside the \mbox{\hyperlink{namespaceComSquare_1_1Cartridge}{Cartridge}} in a real \mbox{\hyperlink{classComSquare_1_1SNES}{S\+N\+ES}}. \mbox{\Hypertarget{classComSquare_1_1SNES_ac9fb24ae8f20645e2a1b620c916f60cd}\label{classComSquare_1_1SNES_ac9fb24ae8f20645e2a1b620c916f60cd}} \index{ComSquare::SNES@{ComSquare::SNES}!wram@{wram}} \index{wram@{wram}!ComSquare::SNES@{ComSquare::SNES}} \doxysubsubsection{\texorpdfstring{wram}{wram}} {\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1Ram_1_1Ram}{Ram\+::\+Ram}} Com\+Square\+::\+S\+N\+E\+S\+::wram} Work \mbox{\hyperlink{namespaceComSquare_1_1Ram}{Ram}} shared by all the components. The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} \item sources/\mbox{\hyperlink{SNES_8hpp}{S\+N\+E\+S.\+hpp}}\item sources/\mbox{\hyperlink{SNES_8cpp}{S\+N\+E\+S.\+cpp}}\end{DoxyCompactItemize}