From 3159285eaa1758506a7ccfe8ec460d6948050b0c Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Sat, 22 Dec 2018 21:28:15 +1100 Subject: [PATCH] Update to v106r68 release. byuu says: Changelog: - nall: converted range, iterator, vector to 64-bit - added (very poor) ColecoVision emulation (including Coleco Adam expansion) - added MSX skeleton - added Neo Geo Pocket skeleton - moved audio,video,resource folders into emulator folder - SFC heuristics: BS-X Town cart is "ZBSJ" [hex_usr] The nall change is for future work on things like BPA: I need to be able to handle files larger than 4GB. It is extremely possible that there are still some truncations to 32-bit lurking around, and even more disastrously, possibly some -1s lurking that won't sign-extend to `(uint64_t)0-1`. There's a lot more classes left to do: `string`, `array_view`, `array_span`, etc. --- genius/GNUmakefile | 2 +- higan/GNUmakefile | 15 ++- higan/{ => emulator}/audio/audio.cpp | 2 - higan/{ => emulator}/audio/audio.hpp | 0 higan/{ => emulator}/audio/stream.cpp | 0 higan/emulator/emulator.cpp | 4 + higan/emulator/emulator.hpp | 10 +- higan/emulator/memory.hpp | 46 ++++++++ higan/{ => emulator}/resource/GNUmakefile | 0 higan/{ => emulator}/resource/resource.bml | 0 higan/{ => emulator}/resource/resource.cpp | 0 higan/{ => emulator}/resource/resource.hpp | 0 .../resource/sprite/crosshair-blue.png | Bin .../resource/sprite/crosshair-green.png | Bin .../resource/sprite/crosshair-red.png | Bin higan/{ => emulator}/video/sprite.cpp | 0 higan/{ => emulator}/video/video.cpp | 2 - higan/{ => emulator}/video/video.hpp | 0 higan/gba/system/system.cpp | 2 +- higan/ms/cartridge/cartridge.cpp | 7 ++ higan/ms/cartridge/cartridge.hpp | 2 +- higan/ms/controller/controller.cpp | 2 + higan/ms/controller/controller.hpp | 4 +- higan/ms/controller/gamepad/gamepad.cpp | 4 +- higan/ms/controller/gamepad/gamepad.hpp | 2 +- higan/ms/controller/numberpad/numberpad.cpp | 33 ++++++ higan/ms/controller/numberpad/numberpad.hpp | 17 +++ higan/ms/cpu/coleco.cpp | 33 ++++++ higan/ms/cpu/cpu.cpp | 27 ++++- higan/ms/cpu/cpu.hpp | 31 ++++- higan/ms/cpu/{bus.cpp => sega.cpp} | 29 ++--- higan/ms/cpu/serialization.cpp | 2 +- higan/ms/interface/colecovision.cpp | 104 +++++++++++++++++ higan/ms/interface/interface.cpp | 1 + higan/ms/interface/interface.hpp | 18 +++ higan/ms/ms.hpp | 2 + higan/ms/system/system.cpp | 7 ++ higan/ms/system/system.hpp | 5 +- higan/ms/vdp/background.cpp | 14 +-- higan/ms/vdp/io.cpp | 2 +- higan/ms/vdp/vdp.cpp | 6 +- higan/msx/GNUmakefile | 6 + higan/msx/interface/interface.cpp | 107 ++++++++++++++++++ higan/msx/interface/interface.hpp | 52 +++++++++ higan/msx/msx.hpp | 47 ++++++++ higan/msx/system/system.cpp | 9 ++ higan/msx/system/system.hpp | 25 ++++ higan/ngp/GNUmakefile | 6 + higan/ngp/interface/interface.cpp | 92 +++++++++++++++ higan/ngp/interface/interface.hpp | 54 +++++++++ higan/ngp/interface/neo-geo-pocket-color.cpp | 7 ++ higan/ngp/interface/neo-geo-pocket.cpp | 7 ++ higan/ngp/ngp.hpp | 40 +++++++ higan/ngp/system/system.cpp | 9 ++ higan/ngp/system/system.hpp | 17 +++ higan/systems/ColecoVision.sys/manifest.bml | 1 + higan/systems/MSX.sys/manifest.bml | 1 + .../Neo Geo Pocket Color.sys/manifest.bml | 1 + higan/systems/Neo Geo Pocket.sys/manifest.bml | 1 + higan/target-bsnes/program/states.cpp | 2 +- higan/target-higan/program/program.cpp | 14 +++ icarus/core/colecovision.cpp | 39 +++++++ icarus/core/core.cpp | 9 ++ icarus/core/core.hpp | 18 +++ icarus/core/neo-geo-pocket-color.cpp | 39 +++++++ icarus/core/neo-geo-pocket.cpp | 39 +++++++ icarus/heuristics/colecovision.cpp | 32 ++++++ icarus/heuristics/neo-geo-pocket-color.cpp | 31 +++++ icarus/heuristics/neo-geo-pocket.cpp | 31 +++++ icarus/heuristics/super-famicom.cpp | 2 +- icarus/icarus.cpp | 43 ++++--- icarus/ui/scan-dialog.cpp | 4 + nall/iterator.hpp | 20 ++-- nall/range.hpp | 28 ++--- nall/vector.hpp | 69 +++++------ nall/vector/access.hpp | 8 +- nall/vector/assign.hpp | 2 +- nall/vector/compare.hpp | 2 +- nall/vector/core.hpp | 4 +- nall/vector/iterator.hpp | 28 ++--- nall/vector/memory.hpp | 32 +++--- nall/vector/modify.hpp | 22 ++-- nall/vector/utility.hpp | 22 ++-- 83 files changed, 1265 insertions(+), 192 deletions(-) rename higan/{ => emulator}/audio/audio.cpp (97%) rename higan/{ => emulator}/audio/audio.hpp (100%) rename higan/{ => emulator}/audio/stream.cpp (100%) create mode 100644 higan/emulator/memory.hpp rename higan/{ => emulator}/resource/GNUmakefile (100%) rename higan/{ => emulator}/resource/resource.bml (100%) rename higan/{ => emulator}/resource/resource.cpp (100%) rename higan/{ => emulator}/resource/resource.hpp (100%) rename higan/{ => emulator}/resource/sprite/crosshair-blue.png (100%) rename higan/{ => emulator}/resource/sprite/crosshair-green.png (100%) rename higan/{ => emulator}/resource/sprite/crosshair-red.png (100%) rename higan/{ => emulator}/video/sprite.cpp (100%) rename higan/{ => emulator}/video/video.cpp (99%) rename higan/{ => emulator}/video/video.hpp (100%) create mode 100644 higan/ms/controller/numberpad/numberpad.cpp create mode 100644 higan/ms/controller/numberpad/numberpad.hpp create mode 100644 higan/ms/cpu/coleco.cpp rename higan/ms/cpu/{bus.cpp => sega.cpp} (83%) create mode 100644 higan/ms/interface/colecovision.cpp create mode 100644 higan/msx/GNUmakefile create mode 100644 higan/msx/interface/interface.cpp create mode 100644 higan/msx/interface/interface.hpp create mode 100644 higan/msx/msx.hpp create mode 100644 higan/msx/system/system.cpp create mode 100644 higan/msx/system/system.hpp create mode 100644 higan/ngp/GNUmakefile create mode 100644 higan/ngp/interface/interface.cpp create mode 100644 higan/ngp/interface/interface.hpp create mode 100644 higan/ngp/interface/neo-geo-pocket-color.cpp create mode 100644 higan/ngp/interface/neo-geo-pocket.cpp create mode 100644 higan/ngp/ngp.hpp create mode 100644 higan/ngp/system/system.cpp create mode 100644 higan/ngp/system/system.hpp create mode 100644 higan/systems/ColecoVision.sys/manifest.bml create mode 100644 higan/systems/MSX.sys/manifest.bml create mode 100644 higan/systems/Neo Geo Pocket Color.sys/manifest.bml create mode 100644 higan/systems/Neo Geo Pocket.sys/manifest.bml create mode 100644 icarus/core/colecovision.cpp create mode 100644 icarus/core/neo-geo-pocket-color.cpp create mode 100644 icarus/core/neo-geo-pocket.cpp create mode 100644 icarus/heuristics/colecovision.cpp create mode 100644 icarus/heuristics/neo-geo-pocket-color.cpp create mode 100644 icarus/heuristics/neo-geo-pocket.cpp diff --git a/genius/GNUmakefile b/genius/GNUmakefile index f2fc8468..f119cd8f 100644 --- a/genius/GNUmakefile +++ b/genius/GNUmakefile @@ -34,7 +34,7 @@ endif $(call delete,obj/*) $(call delete,out/*) -install: +install: all ifeq ($(platform),macos) cp -R out/$(name).app /Applications/$(name).app else ifneq ($(filter $(platform),linux bsd),) diff --git a/higan/GNUmakefile b/higan/GNUmakefile index b74420df..a2e21e18 100644 --- a/higan/GNUmakefile +++ b/higan/GNUmakefile @@ -34,16 +34,13 @@ else $(error "unsupported platform") endif -objects := libco emulator audio video resource +objects := libco emulator obj/libco.o: ../libco/libco.c obj/emulator.o: emulator/emulator.cpp -obj/audio.o: audio/audio.cpp -obj/video.o: video/video.cpp -obj/resource.o: resource/resource.cpp ifeq ($(target),higan) - cores := fc sfc ms md pce gb gba ws + cores := fc sfc ms md pce msx gb gba ws ngp endif ifeq ($(target),bsnes) @@ -70,6 +67,10 @@ ifneq ($(filter $(cores),pce),) include pce/GNUmakefile endif +ifneq ($(filter $(cores),msx),) + include msx/GNUmakefile +endif + ifneq ($(filter $(cores),gb),) include gb/GNUmakefile endif @@ -82,6 +83,10 @@ ifneq ($(filter $(cores),ws),) include ws/GNUmakefile endif +ifneq ($(filter $(cores),ngp),) + include ngp/GNUmakefile +endif + include processor/GNUmakefile flags += $(foreach c,$(call strupper,$(cores)),-DCORE_$c) diff --git a/higan/audio/audio.cpp b/higan/emulator/audio/audio.cpp similarity index 97% rename from higan/audio/audio.cpp rename to higan/emulator/audio/audio.cpp index dd3ba81e..c6fb080a 100644 --- a/higan/audio/audio.cpp +++ b/higan/emulator/audio/audio.cpp @@ -1,5 +1,3 @@ -#include - namespace Emulator { #include "stream.cpp" diff --git a/higan/audio/audio.hpp b/higan/emulator/audio/audio.hpp similarity index 100% rename from higan/audio/audio.hpp rename to higan/emulator/audio/audio.hpp diff --git a/higan/audio/stream.cpp b/higan/emulator/audio/stream.cpp similarity index 100% rename from higan/audio/stream.cpp rename to higan/emulator/audio/stream.cpp diff --git a/higan/emulator/emulator.cpp b/higan/emulator/emulator.cpp index 6c80656d..5bc72fcb 100644 --- a/higan/emulator/emulator.cpp +++ b/higan/emulator/emulator.cpp @@ -1,5 +1,9 @@ #include +#include +#include +#include + namespace Emulator { Platform* platform = nullptr; diff --git a/higan/emulator/emulator.hpp b/higan/emulator/emulator.hpp index 6f9416fe..bbdeddef 100644 --- a/higan/emulator/emulator.hpp +++ b/higan/emulator/emulator.hpp @@ -20,15 +20,15 @@ #include using namespace nall; -#include "types.hpp" #include -#include