diff --git a/README.md b/README.md index 2519931..155760c 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,13 @@ LaiNES Compact, cycle-accurate NES emulator in ~1000 lines of C++. -![File Browser](./img/files.png) -![Super Mario Bros. 3](./img/super_mario_3.png) -![Kirby's Adventure](./img/kirby.png) +![File Browser](http://i.imgur.com/2tuDlCw.png) +![Super Mario Bros. 3](http://i.imgur.com/Gm4QWsE.png) +![Kirby's Adventure](http://i.imgur.com/xA2vwim.png) -![Controller Settings](./img/ff_settings.png) -![Super Mario Bros.](./img/super_mario.png) -![The Legend of Zelda](./img/zelda.png) +![Star Wars](http://i.imgur.com/j3MmRba.png) +![Super Mario Bros.](http://i.imgur.com/yal0ps1.png) +![The Legend of Zelda](http://i.imgur.com/OLO02ij.png) ## How are lines counted? There have been some discussions about how the number of lines has been calculated. The claim of ~1k lines doesn't include the libraries in the boost and nes_apu folders. Future plans include eliminating these dependencies to make the code base even slimmer. @@ -60,7 +60,7 @@ The emulator comes bundled with a simple GUI to navigate the filesystem and set The size of the window and the controls are customizable. LaiNES supports multiple controllers and should work with joysticks as well. The default controls for the first player are as follows: -![Controls](./img/controls.png) +![Controller Settings](http://i.imgur.com/ERQ2nmJ.png) ## Compatibility LaiNES implements the most common mappers, which should be enough for a good percentage of the games: diff --git a/SConstruct b/SConstruct index d9b6582..2e28935 100644 --- a/SConstruct +++ b/SConstruct @@ -1,13 +1,15 @@ from os import environ -flags = ['-O3', '-march=native', '-std=c++11'] +VariantDir('build/src', 'src', duplicate=0) +VariantDir('build/lib', 'lib', duplicate=0) +flags = ['-O3', '-flto', '-march=native', '-std=c++14'] env = Environment(ENV = environ, CXX = 'clang++', - CPPPATH = 'src', CPPFLAGS = ['-Wno-unused-value'], CXXFLAGS = flags, LINKFLAGS = flags, + CPPPATH = ['#lib/include', '#src/include'], LIBS = ['SDL2', 'SDL2_image', 'SDL2_ttf']) -env.Program('laines', Glob('src/*.cpp') + Glob('src/*/*.cpp')) +env.Program('laines', Glob('build/*/*.cpp') + Glob('build/*/*/*.cpp')) diff --git a/img/controls.png b/img/controls.png deleted file mode 100644 index 338dafe..0000000 Binary files a/img/controls.png and /dev/null differ diff --git a/img/ff_settings.png b/img/ff_settings.png deleted file mode 100644 index 6a4a4a6..0000000 Binary files a/img/ff_settings.png and /dev/null differ diff --git a/img/files.png b/img/files.png deleted file mode 100644 index 20a985e..0000000 Binary files a/img/files.png and /dev/null differ diff --git a/img/kirby.png b/img/kirby.png deleted file mode 100644 index 6076631..0000000 Binary files a/img/kirby.png and /dev/null differ diff --git a/img/star_wars.png b/img/star_wars.png deleted file mode 100644 index 241212b..0000000 Binary files a/img/star_wars.png and /dev/null differ diff --git a/img/super_mario.png b/img/super_mario.png deleted file mode 100644 index d824138..0000000 Binary files a/img/super_mario.png and /dev/null differ diff --git a/img/super_mario_3.png b/img/super_mario_3.png deleted file mode 100644 index f930b6f..0000000 Binary files a/img/super_mario_3.png and /dev/null differ diff --git a/img/zelda.png b/img/zelda.png deleted file mode 100644 index c670d07..0000000 Binary files a/img/zelda.png and /dev/null differ diff --git a/src/nes_apu/Blip_Buffer.cpp b/lib/Blip_Buffer.cpp similarity index 100% rename from src/nes_apu/Blip_Buffer.cpp rename to lib/Blip_Buffer.cpp diff --git a/src/nes_apu/Multi_Buffer.cpp b/lib/Multi_Buffer.cpp similarity index 100% rename from src/nes_apu/Multi_Buffer.cpp rename to lib/Multi_Buffer.cpp diff --git a/src/nes_apu/Nes_Apu.cpp b/lib/Nes_Apu.cpp similarity index 100% rename from src/nes_apu/Nes_Apu.cpp rename to lib/Nes_Apu.cpp diff --git a/src/nes_apu/Nes_Namco.cpp b/lib/Nes_Namco.cpp similarity index 100% rename from src/nes_apu/Nes_Namco.cpp rename to lib/Nes_Namco.cpp diff --git a/src/nes_apu/Nes_Oscs.cpp b/lib/Nes_Oscs.cpp similarity index 100% rename from src/nes_apu/Nes_Oscs.cpp rename to lib/Nes_Oscs.cpp diff --git a/src/nes_apu/Nes_Vrc6.cpp b/lib/Nes_Vrc6.cpp similarity index 100% rename from src/nes_apu/Nes_Vrc6.cpp rename to lib/Nes_Vrc6.cpp diff --git a/src/nes_apu/Nonlinear_Buffer.cpp b/lib/Nonlinear_Buffer.cpp similarity index 100% rename from src/nes_apu/Nonlinear_Buffer.cpp rename to lib/Nonlinear_Buffer.cpp diff --git a/src/Sound_Queue.cpp b/lib/Sound_Queue.cpp similarity index 100% rename from src/Sound_Queue.cpp rename to lib/Sound_Queue.cpp diff --git a/src/nes_apu/apu_snapshot.cpp b/lib/apu_snapshot.cpp similarity index 100% rename from src/nes_apu/apu_snapshot.cpp rename to lib/apu_snapshot.cpp diff --git a/src/nes_apu/Blip_Buffer.h b/lib/include/Blip_Buffer.h similarity index 100% rename from src/nes_apu/Blip_Buffer.h rename to lib/include/Blip_Buffer.h diff --git a/src/nes_apu/Blip_Synth.h b/lib/include/Blip_Synth.h similarity index 100% rename from src/nes_apu/Blip_Synth.h rename to lib/include/Blip_Synth.h diff --git a/src/nes_apu/Multi_Buffer.h b/lib/include/Multi_Buffer.h similarity index 100% rename from src/nes_apu/Multi_Buffer.h rename to lib/include/Multi_Buffer.h diff --git a/src/nes_apu/Nes_Apu.h b/lib/include/Nes_Apu.h similarity index 100% rename from src/nes_apu/Nes_Apu.h rename to lib/include/Nes_Apu.h diff --git a/src/nes_apu/Nes_Namco.h b/lib/include/Nes_Namco.h similarity index 100% rename from src/nes_apu/Nes_Namco.h rename to lib/include/Nes_Namco.h diff --git a/src/nes_apu/Nes_Oscs.h b/lib/include/Nes_Oscs.h similarity index 100% rename from src/nes_apu/Nes_Oscs.h rename to lib/include/Nes_Oscs.h diff --git a/src/nes_apu/Nes_Vrc6.h b/lib/include/Nes_Vrc6.h similarity index 100% rename from src/nes_apu/Nes_Vrc6.h rename to lib/include/Nes_Vrc6.h diff --git a/src/nes_apu/Nonlinear_Buffer.h b/lib/include/Nonlinear_Buffer.h similarity index 100% rename from src/nes_apu/Nonlinear_Buffer.h rename to lib/include/Nonlinear_Buffer.h diff --git a/src/Sound_Queue.h b/lib/include/Sound_Queue.h similarity index 100% rename from src/Sound_Queue.h rename to lib/include/Sound_Queue.h diff --git a/src/nes_apu/apu_snapshot.h b/lib/include/apu_snapshot.h similarity index 100% rename from src/nes_apu/apu_snapshot.h rename to lib/include/apu_snapshot.h diff --git a/src/nes_apu/blargg_common.h b/lib/include/blargg_common.h similarity index 100% rename from src/nes_apu/blargg_common.h rename to lib/include/blargg_common.h diff --git a/src/nes_apu/blargg_source.h b/lib/include/blargg_source.h similarity index 100% rename from src/nes_apu/blargg_source.h rename to lib/include/blargg_source.h diff --git a/src/boost/config.hpp b/lib/include/boost/config.hpp similarity index 100% rename from src/boost/config.hpp rename to lib/include/boost/config.hpp diff --git a/src/boost/cstdint.hpp b/lib/include/boost/cstdint.hpp similarity index 100% rename from src/boost/cstdint.hpp rename to lib/include/boost/cstdint.hpp diff --git a/src/boost/static_assert.hpp b/lib/include/boost/static_assert.hpp similarity index 100% rename from src/boost/static_assert.hpp rename to lib/include/boost/static_assert.hpp diff --git a/src/apu.hpp b/src/include/apu.hpp similarity index 100% rename from src/apu.hpp rename to src/include/apu.hpp diff --git a/src/cartridge.hpp b/src/include/cartridge.hpp similarity index 100% rename from src/cartridge.hpp rename to src/include/cartridge.hpp diff --git a/src/common.hpp b/src/include/common.hpp similarity index 100% rename from src/common.hpp rename to src/include/common.hpp diff --git a/src/cpu.hpp b/src/include/cpu.hpp similarity index 96% rename from src/cpu.hpp rename to src/include/cpu.hpp index a2ffaec..8b15e19 100644 --- a/src/cpu.hpp +++ b/src/include/cpu.hpp @@ -1,6 +1,6 @@ #pragma once #include "common.hpp" -#include "nes_apu/Nes_Apu.h" +#include namespace CPU { diff --git a/src/gui.hpp b/src/include/gui.hpp similarity index 94% rename from src/gui.hpp rename to src/include/gui.hpp index 38d49cb..e9afbed 100644 --- a/src/gui.hpp +++ b/src/include/gui.hpp @@ -1,7 +1,7 @@ #pragma once #include #include -#include "nes_apu/Nes_Apu.h" +#include #include "common.hpp" namespace GUI { diff --git a/src/joypad.hpp b/src/include/joypad.hpp similarity index 100% rename from src/joypad.hpp rename to src/include/joypad.hpp diff --git a/src/mapper.hpp b/src/include/mapper.hpp similarity index 100% rename from src/mapper.hpp rename to src/include/mapper.hpp diff --git a/src/mappers/mapper0.hpp b/src/include/mappers/mapper0.hpp similarity index 100% rename from src/mappers/mapper0.hpp rename to src/include/mappers/mapper0.hpp diff --git a/src/mappers/mapper1.hpp b/src/include/mappers/mapper1.hpp similarity index 100% rename from src/mappers/mapper1.hpp rename to src/include/mappers/mapper1.hpp diff --git a/src/mappers/mapper2.hpp b/src/include/mappers/mapper2.hpp similarity index 100% rename from src/mappers/mapper2.hpp rename to src/include/mappers/mapper2.hpp diff --git a/src/mappers/mapper3.hpp b/src/include/mappers/mapper3.hpp similarity index 100% rename from src/mappers/mapper3.hpp rename to src/include/mappers/mapper3.hpp diff --git a/src/mappers/mapper4.hpp b/src/include/mappers/mapper4.hpp similarity index 100% rename from src/mappers/mapper4.hpp rename to src/include/mappers/mapper4.hpp diff --git a/src/menu.hpp b/src/include/menu.hpp similarity index 100% rename from src/menu.hpp rename to src/include/menu.hpp diff --git a/src/ppu.hpp b/src/include/ppu.hpp similarity index 100% rename from src/ppu.hpp rename to src/include/ppu.hpp