diff --git a/.conductor/settings.toml b/.conductor/settings.toml index 99768f4..55275dd 100644 --- a/.conductor/settings.toml +++ b/.conductor/settings.toml @@ -15,6 +15,6 @@ icon = "gamepad-2" # anything else, run the headless mode by hand; see CLAUDE.md. What it is worth is proving the # emulator works where the button above is greyed out. [scripts.run.headless] -command = "mvn -q compile exec:exec@headless -Dmynes.args=\"--rom src/test/resources/nestest/nestest.nes --frames 300 --screenshot last --expect-not-blank\"" +command = "mvn -q compile exec:exec@headless -Dmynes.args=\"--rom mynes-core/src/test/resources/nestest/nestest.nes --frames 300 --screenshot last --expect-not-blank\"" available_in = [ "local", "cloud" ] icon = "terminal" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3e1bfbb..0d17d57 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,7 @@ jobs: # Named without a path so that `sha256sum -c SHA256SUMS` works next to the downloaded zip. - name: Checksum - working-directory: target + working-directory: mynes-desktop/target run: | sha256sum mynes-*.zip > SHA256SUMS cat SHA256SUMS @@ -61,5 +61,5 @@ jobs: run: | gh release create "$GITHUB_REF_NAME" \ --generate-notes \ - target/mynes-*.zip \ - target/SHA256SUMS + mynes-desktop/target/mynes-*.zip \ + mynes-desktop/target/SHA256SUMS diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 812aff2..94e8f76 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,10 +18,13 @@ jobs: # ~1.4GB of Tom Harte fixtures. The committed subset covers every opcode without # this, so a cache miss that fails to download is not fatal to the test run. + # + # Inside the module because HarteCaseLoader resolves the path relative to wherever + # Surefire runs, which is the module rather than the checkout. - name: Cache 6502 test data uses: actions/cache@v6 with: - path: testdata/nes6502 + path: mynes-core/testdata/nes6502 key: nes6502-${{ hashFiles('scripts/download-6502-tests.sh') }} - name: Download 6502 test data diff --git a/CLAUDE.md b/CLAUDE.md index e38626b..ee9dd96 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,6 +1,7 @@ # Working on MyNES -A NES emulator in Java 25, built with Maven. `mvn -B test` runs everything. +A NES emulator in Java 25, built with Maven. Three modules -- `mynes-core`, `mynes-headless`, +`mynes-desktop` -- and `mvn -B test` at the root still runs everything. ## Seeing what the emulator does @@ -12,16 +13,22 @@ Build the jar once, then run it as often as you like: ```sh mvn -B package -DskipTests -JAR=target/mynes.jar +JAR=mynes-desktop/target/mynes.jar java -jar $JAR --headless --rom ROM.nes --frames 900 \ --input 60/40x3:start --screenshot 300,last --audio --dump ram ``` +The jar is under `mynes-desktop/` because that is the module with a main class in it, but it is +still one file and still the whole emulator: the fat jar flattens all three modules and their +dependencies into it. + `java -jar $JAR --headless --help` lists every option. Maven can run it too -- `mvn -q compile exec:exec@headless -Dmynes.args="--rom ROM.nes --frames 300"` -- but it costs a couple of seconds a run against the jar's third of one, so build the jar for anything iterative. -`mvn -q compile exec:exec` opens the window, which a cloud workspace has nowhere to put. +`mvn -q compile exec:exec` opens the window, which a cloud workspace has nowhere to put. Neither +needs a `-pl`: the modules that have no main class declare the goal skipped, and it runs from the +root of the checkout, so a `--rom` path means what it looks like. ### What you get, and where @@ -151,10 +158,10 @@ so `run.state.startedFromPowerOn` in the report is part of what to check before ## What gets released -`mvn package` also writes `target/mynes-.zip` -- the jar, a launcher for each kind of shell, -and the licences. `scripts/smoke-distribution.sh` unpacks it and runs a cartridge out of it, and both -workflows call that, so a distribution somebody has broken fails on the pull request that broke it -rather than at the moment a tag is pushed. +`mvn package` also writes `mynes-desktop/target/mynes-.zip` -- the jar, a launcher for each +kind of shell, and the licences. `scripts/smoke-distribution.sh` unpacks it and runs a cartridge out +of it, and both workflows call that, so a distribution somebody has broken fails on the pull request +that broke it rather than at the moment a tag is pushed. Two things in there are counted rather than derived, and have to move when what they count does. The smoke test expects **12 palettes** -- `Palettes.NESDEV` plus the eleven under `/palettes` -- because a @@ -163,7 +170,15 @@ build would notice one going missing. And `THIRD-PARTY.md` names the two librari carries, which is the file to write in if a third ever earns its place. Releasing is a tag and nothing else. `.github/workflows/release.yml` refuses one whose name disagrees -with the pom, so the version in `pom.xml` moves first and `git tag v` follows it. +with the pom, so the version moves first and `git tag v` follows it. There are four poms to +move it in now, which is a job for the tool rather than for four edits: + +```sh +mvn -B versions:set -DnewVersion=0.3.0 -DprocessAllModules -DgenerateBackupPoms=false +``` + +The workflow's check reads the root pom, and `help:evaluate` is an aggregator goal, so it still +answers with one version rather than three. ## House style @@ -187,20 +202,40 @@ The code has a strong voice. Match it rather than the language's defaults. ## Layout +Three Maven modules, and the arrows between them only point one way. + ``` -mynes/ the console: CPU, PPU, APU, BUS, MMU, VRAM, Cart, Region, controllers -mynes/mappers/ mappers 0 to 4 -mynes/state/ save states and battery .sav files -mynes/debug/ the disassembler and the breakpoints, shared by the window and the REPL -mynes/video/ colour indices to pixels: the overscan crop and the frame renderer -mynes/headless/ the command line mode -mynes/ui/ the Swing window, the palettes, the key bindings, the CHR viewer, the debugger +mynes-core/ depends on nothing + mynes/ the console: CPU, PPU, APU, BUS, MMU, VRAM, Cart, Region, controllers + mynes/mappers/ mappers 0 to 4 + mynes/state/ save states and battery .sav files + mynes/debug/ the disassembler and the breakpoints, shared by the window and the REPL + mynes/video/ colour indices to pixels: the overscan crop and the frame renderer + mynes/palette/ the measured RGB tables, and the loader that reads them out of /palettes + +mynes-headless/ depends on core + mynes/headless/ the command line mode + +mynes-desktop/ depends on core and headless; FlatLaf and MigLayout live here + mynes/ui/ the Swing window, Main, the key bindings, the CHR viewer, the debugger +``` + +The core knows nothing about the front end, and now it *cannot*: `Cart.load` takes a `byte[]`, `NES` +has no UI dependency, `nes.tick()` is the only clock, and the PPU emits colour *indices* -- never +RGB, because which RGB is a question about televisions. What used to be a rule about imports is a +rule about the class path. A chip that wants a window, or a REPL that wants a `JDialog`, does not +compile. + +Which makes one check worth running when the dependencies change: + +```sh +mvn dependency:tree -pl mynes-core # nothing but the two test artifacts +mvn dependency:tree -pl mynes-headless # no FlatLaf, no MigLayout ``` -The core knows nothing about the front end. `Cart.load` takes a `byte[]`, `NES` has no UI -dependency, `nes.tick()` is the only clock, and the PPU emits colour *indices* -- never RGB, because -which RGB is a question about televisions. Keep it that way: nothing in `mynes` or `mynes/headless` -should reach into `mynes/ui`, save for the palette tables. +The palettes are in the core rather than beside the window because both front ends draw with them +and neither owns them. `NESPalette` is 512 packed integers and `Palettes` reads files; the one piece +of Swing in that story, `PaletteDialog`, stayed behind in `mynes/ui/`. `peek` means "read without side effects", and it is load-bearing. `VRAM.read` tells the mapper what address is on the bus, and MMC3 counts those to drive its scanline interrupt -- so a debugger that diff --git a/README.md b/README.md index 3102f7a..a4b0cbb 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,15 @@ That opens the window. Or build a jar once and run that: ```sh mvn -B package -DskipTests -java -jar target/mynes.jar +java -jar mynes-desktop/target/mynes.jar ``` -The same `mvn package` also writes the release zip into `target/`, so what the releases page carries -is never anything a build here has not already made. +One jar, whichever way: it is three Maven modules -- `mynes-core` for the console, `mynes-headless` +for the command line, `mynes-desktop` for the window -- flattened into one file with its +dependencies. The core depends on nothing at all, which is the point of it being separate. + +The same `mvn package` also writes the release zip into `mynes-desktop/target/`, so what the releases +page carries is never anything a build here has not already made. ## Controls @@ -224,7 +228,7 @@ on a machine with no display, or for a coding agent that cannot look at a window ```sh mvn -B package -DskipTests -java -jar target/mynes.jar --headless \ +java -jar mynes-desktop/target/mynes.jar --headless \ --rom smb.nes --frames 900 --input 60/40x3:start --screenshot 300,last --audio ``` @@ -285,7 +289,7 @@ the exact per-cycle bus traffic. nestest passes as well. For the full 10,000 cases per opcode, fetch the upstream set once: ```sh -./scripts/download-6502-tests.sh # ~1.4GB into the gitignored testdata/ +./scripts/download-6502-tests.sh # ~1.4GB into the gitignored mynes-core/testdata/ mvn test # picks the full set up automatically ``` @@ -296,8 +300,8 @@ mvn test -Dgroups=bus-trace mvn test -DexcludedGroups=bus-trace ``` -**The PPU** runs blargg's test ROMs, vendored under `src/test/resources` together with the readme -that came with each suite: `ppu-vbl-nmi` (VBlank and NMI timing to a single PPU clock), +**The PPU** runs blargg's test ROMs, vendored under `mynes-core/src/test/resources` together with +the readme that came with each suite: `ppu-vbl-nmi` (VBlank and NMI timing to a single PPU clock), `ppu-sprite-hit`, `ppu-sprite-overflow`, `oam` (`oam_read` and `oam_stress`), `ppu-open-bus`, `ppu-read-buffer` and `ppu-tests-2005` (palette RAM, VRAM access, sprite RAM, VBlank clear time). @@ -324,10 +328,10 @@ contradicts `5-MMC3` by design. No real chip passes both. **The whole console at once** runs 100thCoin's [AccuracyCoin](https://github.com/100thCoin/AccuracyCoin), one NROM cartridge carrying 141 scored -tests and vendored under `src/test/resources` like the rest. With the cursor on a page header, Start -runs every one of them and draws the table below: a column per page of the menu and a tile per test, -red with an error code on it where one failed, and a pale number where the ROM accepts more than one -answer and that is which one came back. 134 pass. +tests and vendored under `mynes-core/src/test/resources` like the rest. With the cursor on a page +header, Start runs every one of them and draws the table below: a column per page of the menu and a +tile per test, red with an error code on it where one failed, and a pale number where the ROM accepts +more than one answer and that is which one came back. 134 pass. ![AccuracyCoin's results table](shots/accuracycoin.png) diff --git a/THIRD-PARTY.md b/THIRD-PARTY.md index 50f5f59..b8296f1 100644 --- a/THIRD-PARTY.md +++ b/THIRD-PARTY.md @@ -35,4 +35,5 @@ writes its own reports rather than borrowing it. The palettes bundled under `/palettes` in the jar are data rather than software, and are neither FlatLaf's nor MigLayout's. Their sources, terms and credits are in the `PROVENANCE` file beside them, -which is inside `mynes.jar` and also in the repository at `src/main/resources/palettes/PROVENANCE`. +which is inside `mynes.jar` and also in the repository at +`mynes-core/src/main/resources/palettes/PROVENANCE`. diff --git a/mynes-core/pom.xml b/mynes-core/pom.xml new file mode 100644 index 0000000..545c743 --- /dev/null +++ b/mynes-core/pom.xml @@ -0,0 +1,28 @@ + + + 4.0.0 + + + com.github.dimiro1 + mynes + 0.2.0 + + + mynes-core + jar + + mynes-core + The console: CPU, PPU, APU, the mappers, save states, and the picture it makes. + + + + + com.fasterxml.jackson.core + jackson-databind + test + + + diff --git a/src/main/java/com/github/dimiro1/mynes/APU.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/APU.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/APU.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/APU.java diff --git a/src/main/java/com/github/dimiro1/mynes/BUS.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/BUS.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/BUS.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/BUS.java diff --git a/src/main/java/com/github/dimiro1/mynes/ByteUtils.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/ByteUtils.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ByteUtils.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/ByteUtils.java diff --git a/src/main/java/com/github/dimiro1/mynes/CPU.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/CPU.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/CPU.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/CPU.java diff --git a/src/main/java/com/github/dimiro1/mynes/CPUBus.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/CPUBus.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/CPUBus.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/CPUBus.java diff --git a/src/main/java/com/github/dimiro1/mynes/CPUEventListener.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/CPUEventListener.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/CPUEventListener.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/CPUEventListener.java diff --git a/src/main/java/com/github/dimiro1/mynes/Cart.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/Cart.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/Cart.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/Cart.java diff --git a/src/main/java/com/github/dimiro1/mynes/Controller.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/Controller.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/Controller.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/Controller.java diff --git a/src/main/java/com/github/dimiro1/mynes/InvalidNesFileException.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/InvalidNesFileException.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/InvalidNesFileException.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/InvalidNesFileException.java diff --git a/src/main/java/com/github/dimiro1/mynes/MMU.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/MMU.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/MMU.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/MMU.java diff --git a/src/main/java/com/github/dimiro1/mynes/MemoryWriteListener.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/MemoryWriteListener.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/MemoryWriteListener.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/MemoryWriteListener.java diff --git a/src/main/java/com/github/dimiro1/mynes/NES.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/NES.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/NES.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/NES.java diff --git a/src/main/java/com/github/dimiro1/mynes/PPU.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/PPU.java similarity index 99% rename from src/main/java/com/github/dimiro1/mynes/PPU.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/PPU.java index 9c71b8b..a623cab 100644 --- a/src/main/java/com/github/dimiro1/mynes/PPU.java +++ b/mynes-core/src/main/java/com/github/dimiro1/mynes/PPU.java @@ -1458,7 +1458,7 @@ private int backgroundPixel(final int x) { * Both belong here rather than in the front end, because the hardware really does force the * index down and really does put those three bits on the wire. What the resulting signal looks * like on a television is somebody else's problem -- see - * {@code com.github.dimiro1.mynes.ui.palette.NESPalette}. + * {@code com.github.dimiro1.mynes.palette.NESPalette}. * * @return {@code emphasis << 6 | entry}, 0 to 511. */ diff --git a/src/main/java/com/github/dimiro1/mynes/PPUBus.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/PPUBus.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/PPUBus.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/PPUBus.java diff --git a/src/main/java/com/github/dimiro1/mynes/Region.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/Region.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/Region.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/Region.java diff --git a/src/main/java/com/github/dimiro1/mynes/StandardController.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/StandardController.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/StandardController.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/StandardController.java diff --git a/src/main/java/com/github/dimiro1/mynes/UnsupportedMapperException.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/UnsupportedMapperException.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/UnsupportedMapperException.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/UnsupportedMapperException.java diff --git a/src/main/java/com/github/dimiro1/mynes/VRAM.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/VRAM.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/VRAM.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/VRAM.java diff --git a/src/main/java/com/github/dimiro1/mynes/debug/Debugger.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/debug/Debugger.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/debug/Debugger.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/debug/Debugger.java diff --git a/src/main/java/com/github/dimiro1/mynes/debug/Disassembler.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/debug/Disassembler.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/debug/Disassembler.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/debug/Disassembler.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/IRQHandler.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/IRQHandler.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/IRQHandler.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/IRQHandler.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper0.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper0.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper0.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper0.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper1.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper1.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper1.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper1.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper10.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper10.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper10.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper10.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper11.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper11.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper11.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper11.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper2.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper2.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper2.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper2.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper3.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper3.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper3.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper3.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper4.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper4.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper4.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper4.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper66.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper66.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper66.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper66.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper7.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper7.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper7.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper7.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper71.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper71.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper71.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper71.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mapper9.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper9.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mapper9.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mapper9.java diff --git a/src/main/java/com/github/dimiro1/mynes/mappers/Mirroring.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mirroring.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/mappers/Mirroring.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/mappers/Mirroring.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/palette/NESPalette.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/palette/NESPalette.java similarity index 99% rename from src/main/java/com/github/dimiro1/mynes/ui/palette/NESPalette.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/palette/NESPalette.java index 10ec043..5dee357 100644 --- a/src/main/java/com/github/dimiro1/mynes/ui/palette/NESPalette.java +++ b/mynes-core/src/main/java/com/github/dimiro1/mynes/palette/NESPalette.java @@ -1,4 +1,4 @@ -package com.github.dimiro1.mynes.ui.palette; +package com.github.dimiro1.mynes.palette; /** * One measurement of the colours a 2C02 produces, in a shape the front end can draw with. diff --git a/src/main/java/com/github/dimiro1/mynes/ui/palette/Palettes.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/palette/Palettes.java similarity index 95% rename from src/main/java/com/github/dimiro1/mynes/ui/palette/Palettes.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/palette/Palettes.java index bb8877b..ae8bd89 100644 --- a/src/main/java/com/github/dimiro1/mynes/ui/palette/Palettes.java +++ b/mynes-core/src/main/java/com/github/dimiro1/mynes/palette/Palettes.java @@ -1,4 +1,4 @@ -package com.github.dimiro1.mynes.ui.palette; +package com.github.dimiro1.mynes.palette; import com.github.dimiro1.mynes.Region; @@ -17,7 +17,9 @@ * goes for a missing resource. */ public final class Palettes { - private static final Logger logger = System.getLogger("UI"); + // "PALETTE" rather than "UI": both front ends load these, and the window is no longer the only + // thing that can be reading a palette file when one of them turns out to be unreadable. + private static final Logger logger = System.getLogger("PALETTE"); /** * The NESdev set, and the one MyNES has always drawn with. diff --git a/src/main/java/com/github/dimiro1/mynes/state/BatteryRAM.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/state/BatteryRAM.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/state/BatteryRAM.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/state/BatteryRAM.java diff --git a/src/main/java/com/github/dimiro1/mynes/state/SaveState.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/state/SaveState.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/state/SaveState.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/state/SaveState.java diff --git a/src/main/java/com/github/dimiro1/mynes/state/SaveStateException.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/state/SaveStateException.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/state/SaveStateException.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/state/SaveStateException.java diff --git a/src/main/java/com/github/dimiro1/mynes/state/StateIO.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/state/StateIO.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/state/StateIO.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/state/StateIO.java diff --git a/src/main/java/com/github/dimiro1/mynes/state/package-info.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/state/package-info.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/state/package-info.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/state/package-info.java diff --git a/src/main/java/com/github/dimiro1/mynes/video/FrameAnalysis.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/video/FrameAnalysis.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/video/FrameAnalysis.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/video/FrameAnalysis.java diff --git a/src/main/java/com/github/dimiro1/mynes/video/FrameRenderer.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/video/FrameRenderer.java similarity index 98% rename from src/main/java/com/github/dimiro1/mynes/video/FrameRenderer.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/video/FrameRenderer.java index cfb8d89..bde92c0 100644 --- a/src/main/java/com/github/dimiro1/mynes/video/FrameRenderer.java +++ b/mynes-core/src/main/java/com/github/dimiro1/mynes/video/FrameRenderer.java @@ -15,7 +15,7 @@ * and not a common superclass. *

* The palette arrives as a plain {@code int[512]} rather than as a - * {@link com.github.dimiro1.mynes.ui.palette.NESPalette}, so that drawing a picture does not oblige + * {@link com.github.dimiro1.mynes.palette.NESPalette}, so that drawing a picture does not oblige * a caller to know what a palette is made of, and so that this package depends on nothing but the * PPU and {@code java.awt.image}. */ diff --git a/src/main/java/com/github/dimiro1/mynes/video/package-info.java b/mynes-core/src/main/java/com/github/dimiro1/mynes/video/package-info.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/video/package-info.java rename to mynes-core/src/main/java/com/github/dimiro1/mynes/video/package-info.java diff --git a/src/main/resources/palettes/2c07.pal b/mynes-core/src/main/resources/palettes/2c07.pal similarity index 100% rename from src/main/resources/palettes/2c07.pal rename to mynes-core/src/main/resources/palettes/2c07.pal diff --git a/src/main/resources/palettes/PROVENANCE b/mynes-core/src/main/resources/palettes/PROVENANCE similarity index 100% rename from src/main/resources/palettes/PROVENANCE rename to mynes-core/src/main/resources/palettes/PROVENANCE diff --git a/src/main/resources/palettes/composite-direct.pal b/mynes-core/src/main/resources/palettes/composite-direct.pal similarity index 100% rename from src/main/resources/palettes/composite-direct.pal rename to mynes-core/src/main/resources/palettes/composite-direct.pal diff --git a/src/main/resources/palettes/digital-prime.pal b/mynes-core/src/main/resources/palettes/digital-prime.pal similarity index 100% rename from src/main/resources/palettes/digital-prime.pal rename to mynes-core/src/main/resources/palettes/digital-prime.pal diff --git a/src/main/resources/palettes/magnum.pal b/mynes-core/src/main/resources/palettes/magnum.pal similarity index 100% rename from src/main/resources/palettes/magnum.pal rename to mynes-core/src/main/resources/palettes/magnum.pal diff --git a/src/main/resources/palettes/nes-classic.pal b/mynes-core/src/main/resources/palettes/nes-classic.pal similarity index 100% rename from src/main/resources/palettes/nes-classic.pal rename to mynes-core/src/main/resources/palettes/nes-classic.pal diff --git a/src/main/resources/palettes/pc-10.pal b/mynes-core/src/main/resources/palettes/pc-10.pal similarity index 100% rename from src/main/resources/palettes/pc-10.pal rename to mynes-core/src/main/resources/palettes/pc-10.pal diff --git a/src/main/resources/palettes/pvm-style-d93.pal b/mynes-core/src/main/resources/palettes/pvm-style-d93.pal similarity index 100% rename from src/main/resources/palettes/pvm-style-d93.pal rename to mynes-core/src/main/resources/palettes/pvm-style-d93.pal diff --git a/src/main/resources/palettes/smooth-v2.pal b/mynes-core/src/main/resources/palettes/smooth-v2.pal similarity index 100% rename from src/main/resources/palettes/smooth-v2.pal rename to mynes-core/src/main/resources/palettes/smooth-v2.pal diff --git a/src/main/resources/palettes/smooth.pal b/mynes-core/src/main/resources/palettes/smooth.pal similarity index 100% rename from src/main/resources/palettes/smooth.pal rename to mynes-core/src/main/resources/palettes/smooth.pal diff --git a/src/main/resources/palettes/sony-cxa.pal b/mynes-core/src/main/resources/palettes/sony-cxa.pal similarity index 100% rename from src/main/resources/palettes/sony-cxa.pal rename to mynes-core/src/main/resources/palettes/sony-cxa.pal diff --git a/src/main/resources/palettes/wavebeam.pal b/mynes-core/src/main/resources/palettes/wavebeam.pal similarity index 100% rename from src/main/resources/palettes/wavebeam.pal rename to mynes-core/src/main/resources/palettes/wavebeam.pal diff --git a/src/test/java/com/github/dimiro1/mynes/APUChannelTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/APUChannelTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/APUChannelTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/APUChannelTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/APUDMCTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/APUDMCTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/APUDMCTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/APUDMCTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/APUFrameCounterTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/APUFrameCounterTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/APUFrameCounterTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/APUFrameCounterTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/APULengthTableTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/APULengthTableTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/APULengthTableTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/APULengthTableTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/APUMixerTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/APUMixerTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/APUMixerTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/APUMixerTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/BUSIRQTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/BUSIRQTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/BUSIRQTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/BUSIRQTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ByteUtilsTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ByteUtilsTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ByteUtilsTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ByteUtilsTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/MMUTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/MMUTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/MMUTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/MMUTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/RegionTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/RegionTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/RegionTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/RegionTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/StandardControllerTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/StandardControllerTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/StandardControllerTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/StandardControllerTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/accuracycoin/AccuracyCoinTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/accuracycoin/AccuracyCoinTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/accuracycoin/AccuracyCoinTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/accuracycoin/AccuracyCoinTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/blargg/APUBlarggTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/APUBlarggTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/blargg/APUBlarggTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/APUBlarggTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/blargg/BlarggRunner.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/BlarggRunner.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/blargg/BlarggRunner.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/BlarggRunner.java diff --git a/src/test/java/com/github/dimiro1/mynes/blargg/BlarggTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/BlarggTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/blargg/BlarggTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/BlarggTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/blargg/MMC3BlarggTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/MMC3BlarggTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/blargg/MMC3BlarggTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/MMC3BlarggTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/blargg/PPUBlarggTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/PPUBlarggTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/blargg/PPUBlarggTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/blargg/PPUBlarggTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/cart/CartTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/cart/CartTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/cart/CartTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/cart/CartTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/cpu/CPUInterruptTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/CPUInterruptTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/cpu/CPUInterruptTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/CPUInterruptTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/cpu/HarteCPUTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/HarteCPUTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/cpu/HarteCPUTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/HarteCPUTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/cpu/HarteCase.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/HarteCase.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/cpu/HarteCase.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/HarteCase.java diff --git a/src/test/java/com/github/dimiro1/mynes/cpu/HarteCaseLoader.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/HarteCaseLoader.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/cpu/HarteCaseLoader.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/HarteCaseLoader.java diff --git a/src/test/java/com/github/dimiro1/mynes/cpu/HarteCaseRunner.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/HarteCaseRunner.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/cpu/HarteCaseRunner.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/HarteCaseRunner.java diff --git a/src/test/java/com/github/dimiro1/mynes/cpu/RecordingBus.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/RecordingBus.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/cpu/RecordingBus.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/cpu/RecordingBus.java diff --git a/src/test/java/com/github/dimiro1/mynes/debug/DebuggerTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/debug/DebuggerTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/debug/DebuggerTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/debug/DebuggerTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/debug/DisassemblerTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/debug/DisassemblerTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/debug/DisassemblerTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/debug/DisassemblerTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper10Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper10Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper10Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper10Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper11Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper11Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper11Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper11Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper1Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper1Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper1Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper1Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper2Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper2Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper2Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper2Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper4ScanlineTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper4ScanlineTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper4ScanlineTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper4ScanlineTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper4Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper4Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper4Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper4Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper66Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper66Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper66Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper66Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper71Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper71Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper71Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper71Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper7Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper7Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper7Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper7Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/Mapper9Tests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper9Tests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/Mapper9Tests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/Mapper9Tests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/MapperCartridgeTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/MapperCartridgeTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/MapperCartridgeTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/MapperCartridgeTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/MapperSaveStateTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/MapperSaveStateTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/MapperSaveStateTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/MapperSaveStateTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/mappers/StampedROM.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/StampedROM.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/mappers/StampedROM.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/mappers/StampedROM.java diff --git a/src/test/java/com/github/dimiro1/mynes/nestests/NesTestTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/nestests/NesTestTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/nestests/NesTestTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/nestests/NesTestTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/nestests/NestestCPUListener.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/nestests/NestestCPUListener.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/nestests/NestestCPUListener.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/nestests/NestestCPUListener.java diff --git a/src/test/java/com/github/dimiro1/mynes/nestests/NestestLogParseException.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/nestests/NestestLogParseException.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/nestests/NestestLogParseException.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/nestests/NestestLogParseException.java diff --git a/src/test/java/com/github/dimiro1/mynes/nestests/NestestLogParser.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/nestests/NestestLogParser.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/nestests/NestestLogParser.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/nestests/NestestLogParser.java diff --git a/src/test/java/com/github/dimiro1/mynes/ui/palette/NESPaletteTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/palette/NESPaletteTests.java similarity index 99% rename from src/test/java/com/github/dimiro1/mynes/ui/palette/NESPaletteTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/palette/NESPaletteTests.java index 8571f00..600ab78 100644 --- a/src/test/java/com/github/dimiro1/mynes/ui/palette/NESPaletteTests.java +++ b/mynes-core/src/test/java/com/github/dimiro1/mynes/palette/NESPaletteTests.java @@ -1,4 +1,4 @@ -package com.github.dimiro1.mynes.ui.palette; +package com.github.dimiro1.mynes.palette; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; diff --git a/src/test/java/com/github/dimiro1/mynes/ui/palette/PalettesTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/palette/PalettesTests.java similarity index 98% rename from src/test/java/com/github/dimiro1/mynes/ui/palette/PalettesTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/palette/PalettesTests.java index a432353..d505862 100644 --- a/src/test/java/com/github/dimiro1/mynes/ui/palette/PalettesTests.java +++ b/mynes-core/src/test/java/com/github/dimiro1/mynes/palette/PalettesTests.java @@ -1,4 +1,4 @@ -package com.github.dimiro1.mynes.ui.palette; +package com.github.dimiro1.mynes.palette; import com.github.dimiro1.mynes.Region; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/NESIntegrationTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/NESIntegrationTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/NESIntegrationTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/NESIntegrationTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUAddressBusTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUAddressBusTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUAddressBusTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUAddressBusTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUBackgroundTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUBackgroundTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUBackgroundTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUBackgroundTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUFixture.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUFixture.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUFixture.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUFixture.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUMemoryTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUMemoryTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUMemoryTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUMemoryTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUNMITests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUNMITests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUNMITests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUNMITests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUOAMDecayTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUOAMDecayTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUOAMDecayTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUOAMDecayTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUOpenBusTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUOpenBusTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUOpenBusTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUOpenBusTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUPowerUpTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUPowerUpTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUPowerUpTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUPowerUpTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPURegisterTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPURegisterTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPURegisterTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPURegisterTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUSpriteTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUSpriteTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUSpriteTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUSpriteTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/PPUTimingTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUTimingTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/PPUTimingTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/PPUTimingTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/RecordingPPUBus.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/RecordingPPUBus.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/RecordingPPUBus.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/RecordingPPUBus.java diff --git a/src/test/java/com/github/dimiro1/mynes/ppu/StubMapper.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/StubMapper.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ppu/StubMapper.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/ppu/StubMapper.java diff --git a/src/test/java/com/github/dimiro1/mynes/state/BatteryRAMTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/state/BatteryRAMTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/state/BatteryRAMTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/state/BatteryRAMTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/state/SaveStateCompletenessTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/state/SaveStateCompletenessTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/state/SaveStateCompletenessTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/state/SaveStateCompletenessTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/state/SaveStateDivergenceTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/state/SaveStateDivergenceTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/state/SaveStateDivergenceTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/state/SaveStateDivergenceTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/state/SaveStateFormatTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/state/SaveStateFormatTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/state/SaveStateFormatTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/state/SaveStateFormatTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/state/StateIOTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/state/StateIOTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/state/StateIOTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/state/StateIOTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/video/FrameAnalysisTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/video/FrameAnalysisTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/video/FrameAnalysisTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/video/FrameAnalysisTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/video/FrameRendererTests.java b/mynes-core/src/test/java/com/github/dimiro1/mynes/video/FrameRendererTests.java similarity index 98% rename from src/test/java/com/github/dimiro1/mynes/video/FrameRendererTests.java rename to mynes-core/src/test/java/com/github/dimiro1/mynes/video/FrameRendererTests.java index 7e852df..4540f52 100644 --- a/src/test/java/com/github/dimiro1/mynes/video/FrameRendererTests.java +++ b/mynes-core/src/test/java/com/github/dimiro1/mynes/video/FrameRendererTests.java @@ -1,7 +1,7 @@ package com.github.dimiro1.mynes.video; import com.github.dimiro1.mynes.PPU; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.Palettes; import org.junit.jupiter.api.Test; import java.util.Arrays; diff --git a/src/test/resources/accuracycoin/AccuracyCoin.nes b/mynes-core/src/test/resources/accuracycoin/AccuracyCoin.nes similarity index 100% rename from src/test/resources/accuracycoin/AccuracyCoin.nes rename to mynes-core/src/test/resources/accuracycoin/AccuracyCoin.nes diff --git a/src/test/resources/accuracycoin/LICENSE b/mynes-core/src/test/resources/accuracycoin/LICENSE similarity index 100% rename from src/test/resources/accuracycoin/LICENSE rename to mynes-core/src/test/resources/accuracycoin/LICENSE diff --git a/src/test/resources/apu-reset/4015_cleared.nes b/mynes-core/src/test/resources/apu-reset/4015_cleared.nes similarity index 100% rename from src/test/resources/apu-reset/4015_cleared.nes rename to mynes-core/src/test/resources/apu-reset/4015_cleared.nes diff --git a/src/test/resources/apu-reset/4017_timing.nes b/mynes-core/src/test/resources/apu-reset/4017_timing.nes similarity index 100% rename from src/test/resources/apu-reset/4017_timing.nes rename to mynes-core/src/test/resources/apu-reset/4017_timing.nes diff --git a/src/test/resources/apu-reset/4017_written.nes b/mynes-core/src/test/resources/apu-reset/4017_written.nes similarity index 100% rename from src/test/resources/apu-reset/4017_written.nes rename to mynes-core/src/test/resources/apu-reset/4017_written.nes diff --git a/src/test/resources/apu-reset/irq_flag_cleared.nes b/mynes-core/src/test/resources/apu-reset/irq_flag_cleared.nes similarity index 100% rename from src/test/resources/apu-reset/irq_flag_cleared.nes rename to mynes-core/src/test/resources/apu-reset/irq_flag_cleared.nes diff --git a/src/test/resources/apu-reset/len_ctrs_enabled.nes b/mynes-core/src/test/resources/apu-reset/len_ctrs_enabled.nes similarity index 100% rename from src/test/resources/apu-reset/len_ctrs_enabled.nes rename to mynes-core/src/test/resources/apu-reset/len_ctrs_enabled.nes diff --git a/src/test/resources/apu-reset/readme.txt b/mynes-core/src/test/resources/apu-reset/readme.txt similarity index 100% rename from src/test/resources/apu-reset/readme.txt rename to mynes-core/src/test/resources/apu-reset/readme.txt diff --git a/src/test/resources/apu-reset/works_immediately.nes b/mynes-core/src/test/resources/apu-reset/works_immediately.nes similarity index 100% rename from src/test/resources/apu-reset/works_immediately.nes rename to mynes-core/src/test/resources/apu-reset/works_immediately.nes diff --git a/src/test/resources/apu-test/1-len_ctr.nes b/mynes-core/src/test/resources/apu-test/1-len_ctr.nes similarity index 100% rename from src/test/resources/apu-test/1-len_ctr.nes rename to mynes-core/src/test/resources/apu-test/1-len_ctr.nes diff --git a/src/test/resources/apu-test/2-len_table.nes b/mynes-core/src/test/resources/apu-test/2-len_table.nes similarity index 100% rename from src/test/resources/apu-test/2-len_table.nes rename to mynes-core/src/test/resources/apu-test/2-len_table.nes diff --git a/src/test/resources/apu-test/3-irq_flag.nes b/mynes-core/src/test/resources/apu-test/3-irq_flag.nes similarity index 100% rename from src/test/resources/apu-test/3-irq_flag.nes rename to mynes-core/src/test/resources/apu-test/3-irq_flag.nes diff --git a/src/test/resources/apu-test/4-jitter.nes b/mynes-core/src/test/resources/apu-test/4-jitter.nes similarity index 100% rename from src/test/resources/apu-test/4-jitter.nes rename to mynes-core/src/test/resources/apu-test/4-jitter.nes diff --git a/src/test/resources/apu-test/5-len_timing.nes b/mynes-core/src/test/resources/apu-test/5-len_timing.nes similarity index 100% rename from src/test/resources/apu-test/5-len_timing.nes rename to mynes-core/src/test/resources/apu-test/5-len_timing.nes diff --git a/src/test/resources/apu-test/6-irq_flag_timing.nes b/mynes-core/src/test/resources/apu-test/6-irq_flag_timing.nes similarity index 100% rename from src/test/resources/apu-test/6-irq_flag_timing.nes rename to mynes-core/src/test/resources/apu-test/6-irq_flag_timing.nes diff --git a/src/test/resources/apu-test/7-dmc_basics.nes b/mynes-core/src/test/resources/apu-test/7-dmc_basics.nes similarity index 100% rename from src/test/resources/apu-test/7-dmc_basics.nes rename to mynes-core/src/test/resources/apu-test/7-dmc_basics.nes diff --git a/src/test/resources/apu-test/8-dmc_rates.nes b/mynes-core/src/test/resources/apu-test/8-dmc_rates.nes similarity index 100% rename from src/test/resources/apu-test/8-dmc_rates.nes rename to mynes-core/src/test/resources/apu-test/8-dmc_rates.nes diff --git a/src/test/resources/apu-test/readme.txt b/mynes-core/src/test/resources/apu-test/readme.txt similarity index 100% rename from src/test/resources/apu-test/readme.txt rename to mynes-core/src/test/resources/apu-test/readme.txt diff --git a/src/test/resources/cpu-reset/ram_after_reset.nes b/mynes-core/src/test/resources/cpu-reset/ram_after_reset.nes similarity index 100% rename from src/test/resources/cpu-reset/ram_after_reset.nes rename to mynes-core/src/test/resources/cpu-reset/ram_after_reset.nes diff --git a/src/test/resources/cpu-reset/readme.txt b/mynes-core/src/test/resources/cpu-reset/readme.txt similarity index 100% rename from src/test/resources/cpu-reset/readme.txt rename to mynes-core/src/test/resources/cpu-reset/readme.txt diff --git a/src/test/resources/cpu-reset/registers.nes b/mynes-core/src/test/resources/cpu-reset/registers.nes similarity index 100% rename from src/test/resources/cpu-reset/registers.nes rename to mynes-core/src/test/resources/cpu-reset/registers.nes diff --git a/src/test/resources/harte/nes6502/00.json.gz b/mynes-core/src/test/resources/harte/nes6502/00.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/00.json.gz rename to mynes-core/src/test/resources/harte/nes6502/00.json.gz diff --git a/src/test/resources/harte/nes6502/01.json.gz b/mynes-core/src/test/resources/harte/nes6502/01.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/01.json.gz rename to mynes-core/src/test/resources/harte/nes6502/01.json.gz diff --git a/src/test/resources/harte/nes6502/02.json.gz b/mynes-core/src/test/resources/harte/nes6502/02.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/02.json.gz rename to mynes-core/src/test/resources/harte/nes6502/02.json.gz diff --git a/src/test/resources/harte/nes6502/03.json.gz b/mynes-core/src/test/resources/harte/nes6502/03.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/03.json.gz rename to mynes-core/src/test/resources/harte/nes6502/03.json.gz diff --git a/src/test/resources/harte/nes6502/04.json.gz b/mynes-core/src/test/resources/harte/nes6502/04.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/04.json.gz rename to mynes-core/src/test/resources/harte/nes6502/04.json.gz diff --git a/src/test/resources/harte/nes6502/05.json.gz b/mynes-core/src/test/resources/harte/nes6502/05.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/05.json.gz rename to mynes-core/src/test/resources/harte/nes6502/05.json.gz diff --git a/src/test/resources/harte/nes6502/06.json.gz b/mynes-core/src/test/resources/harte/nes6502/06.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/06.json.gz rename to mynes-core/src/test/resources/harte/nes6502/06.json.gz diff --git a/src/test/resources/harte/nes6502/07.json.gz b/mynes-core/src/test/resources/harte/nes6502/07.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/07.json.gz rename to mynes-core/src/test/resources/harte/nes6502/07.json.gz diff --git a/src/test/resources/harte/nes6502/08.json.gz b/mynes-core/src/test/resources/harte/nes6502/08.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/08.json.gz rename to mynes-core/src/test/resources/harte/nes6502/08.json.gz diff --git a/src/test/resources/harte/nes6502/09.json.gz b/mynes-core/src/test/resources/harte/nes6502/09.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/09.json.gz rename to mynes-core/src/test/resources/harte/nes6502/09.json.gz diff --git a/src/test/resources/harte/nes6502/0a.json.gz b/mynes-core/src/test/resources/harte/nes6502/0a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/0a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/0a.json.gz diff --git a/src/test/resources/harte/nes6502/0b.json.gz b/mynes-core/src/test/resources/harte/nes6502/0b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/0b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/0b.json.gz diff --git a/src/test/resources/harte/nes6502/0c.json.gz b/mynes-core/src/test/resources/harte/nes6502/0c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/0c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/0c.json.gz diff --git a/src/test/resources/harte/nes6502/0d.json.gz b/mynes-core/src/test/resources/harte/nes6502/0d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/0d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/0d.json.gz diff --git a/src/test/resources/harte/nes6502/0e.json.gz b/mynes-core/src/test/resources/harte/nes6502/0e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/0e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/0e.json.gz diff --git a/src/test/resources/harte/nes6502/0f.json.gz b/mynes-core/src/test/resources/harte/nes6502/0f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/0f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/0f.json.gz diff --git a/src/test/resources/harte/nes6502/10.json.gz b/mynes-core/src/test/resources/harte/nes6502/10.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/10.json.gz rename to mynes-core/src/test/resources/harte/nes6502/10.json.gz diff --git a/src/test/resources/harte/nes6502/11.json.gz b/mynes-core/src/test/resources/harte/nes6502/11.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/11.json.gz rename to mynes-core/src/test/resources/harte/nes6502/11.json.gz diff --git a/src/test/resources/harte/nes6502/12.json.gz b/mynes-core/src/test/resources/harte/nes6502/12.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/12.json.gz rename to mynes-core/src/test/resources/harte/nes6502/12.json.gz diff --git a/src/test/resources/harte/nes6502/13.json.gz b/mynes-core/src/test/resources/harte/nes6502/13.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/13.json.gz rename to mynes-core/src/test/resources/harte/nes6502/13.json.gz diff --git a/src/test/resources/harte/nes6502/14.json.gz b/mynes-core/src/test/resources/harte/nes6502/14.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/14.json.gz rename to mynes-core/src/test/resources/harte/nes6502/14.json.gz diff --git a/src/test/resources/harte/nes6502/15.json.gz b/mynes-core/src/test/resources/harte/nes6502/15.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/15.json.gz rename to mynes-core/src/test/resources/harte/nes6502/15.json.gz diff --git a/src/test/resources/harte/nes6502/16.json.gz b/mynes-core/src/test/resources/harte/nes6502/16.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/16.json.gz rename to mynes-core/src/test/resources/harte/nes6502/16.json.gz diff --git a/src/test/resources/harte/nes6502/17.json.gz b/mynes-core/src/test/resources/harte/nes6502/17.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/17.json.gz rename to mynes-core/src/test/resources/harte/nes6502/17.json.gz diff --git a/src/test/resources/harte/nes6502/18.json.gz b/mynes-core/src/test/resources/harte/nes6502/18.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/18.json.gz rename to mynes-core/src/test/resources/harte/nes6502/18.json.gz diff --git a/src/test/resources/harte/nes6502/19.json.gz b/mynes-core/src/test/resources/harte/nes6502/19.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/19.json.gz rename to mynes-core/src/test/resources/harte/nes6502/19.json.gz diff --git a/src/test/resources/harte/nes6502/1a.json.gz b/mynes-core/src/test/resources/harte/nes6502/1a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/1a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/1a.json.gz diff --git a/src/test/resources/harte/nes6502/1b.json.gz b/mynes-core/src/test/resources/harte/nes6502/1b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/1b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/1b.json.gz diff --git a/src/test/resources/harte/nes6502/1c.json.gz b/mynes-core/src/test/resources/harte/nes6502/1c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/1c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/1c.json.gz diff --git a/src/test/resources/harte/nes6502/1d.json.gz b/mynes-core/src/test/resources/harte/nes6502/1d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/1d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/1d.json.gz diff --git a/src/test/resources/harte/nes6502/1e.json.gz b/mynes-core/src/test/resources/harte/nes6502/1e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/1e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/1e.json.gz diff --git a/src/test/resources/harte/nes6502/1f.json.gz b/mynes-core/src/test/resources/harte/nes6502/1f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/1f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/1f.json.gz diff --git a/src/test/resources/harte/nes6502/20.json.gz b/mynes-core/src/test/resources/harte/nes6502/20.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/20.json.gz rename to mynes-core/src/test/resources/harte/nes6502/20.json.gz diff --git a/src/test/resources/harte/nes6502/21.json.gz b/mynes-core/src/test/resources/harte/nes6502/21.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/21.json.gz rename to mynes-core/src/test/resources/harte/nes6502/21.json.gz diff --git a/src/test/resources/harte/nes6502/22.json.gz b/mynes-core/src/test/resources/harte/nes6502/22.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/22.json.gz rename to mynes-core/src/test/resources/harte/nes6502/22.json.gz diff --git a/src/test/resources/harte/nes6502/23.json.gz b/mynes-core/src/test/resources/harte/nes6502/23.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/23.json.gz rename to mynes-core/src/test/resources/harte/nes6502/23.json.gz diff --git a/src/test/resources/harte/nes6502/24.json.gz b/mynes-core/src/test/resources/harte/nes6502/24.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/24.json.gz rename to mynes-core/src/test/resources/harte/nes6502/24.json.gz diff --git a/src/test/resources/harte/nes6502/25.json.gz b/mynes-core/src/test/resources/harte/nes6502/25.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/25.json.gz rename to mynes-core/src/test/resources/harte/nes6502/25.json.gz diff --git a/src/test/resources/harte/nes6502/26.json.gz b/mynes-core/src/test/resources/harte/nes6502/26.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/26.json.gz rename to mynes-core/src/test/resources/harte/nes6502/26.json.gz diff --git a/src/test/resources/harte/nes6502/27.json.gz b/mynes-core/src/test/resources/harte/nes6502/27.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/27.json.gz rename to mynes-core/src/test/resources/harte/nes6502/27.json.gz diff --git a/src/test/resources/harte/nes6502/28.json.gz b/mynes-core/src/test/resources/harte/nes6502/28.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/28.json.gz rename to mynes-core/src/test/resources/harte/nes6502/28.json.gz diff --git a/src/test/resources/harte/nes6502/29.json.gz b/mynes-core/src/test/resources/harte/nes6502/29.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/29.json.gz rename to mynes-core/src/test/resources/harte/nes6502/29.json.gz diff --git a/src/test/resources/harte/nes6502/2a.json.gz b/mynes-core/src/test/resources/harte/nes6502/2a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/2a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/2a.json.gz diff --git a/src/test/resources/harte/nes6502/2b.json.gz b/mynes-core/src/test/resources/harte/nes6502/2b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/2b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/2b.json.gz diff --git a/src/test/resources/harte/nes6502/2c.json.gz b/mynes-core/src/test/resources/harte/nes6502/2c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/2c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/2c.json.gz diff --git a/src/test/resources/harte/nes6502/2d.json.gz b/mynes-core/src/test/resources/harte/nes6502/2d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/2d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/2d.json.gz diff --git a/src/test/resources/harte/nes6502/2e.json.gz b/mynes-core/src/test/resources/harte/nes6502/2e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/2e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/2e.json.gz diff --git a/src/test/resources/harte/nes6502/2f.json.gz b/mynes-core/src/test/resources/harte/nes6502/2f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/2f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/2f.json.gz diff --git a/src/test/resources/harte/nes6502/30.json.gz b/mynes-core/src/test/resources/harte/nes6502/30.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/30.json.gz rename to mynes-core/src/test/resources/harte/nes6502/30.json.gz diff --git a/src/test/resources/harte/nes6502/31.json.gz b/mynes-core/src/test/resources/harte/nes6502/31.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/31.json.gz rename to mynes-core/src/test/resources/harte/nes6502/31.json.gz diff --git a/src/test/resources/harte/nes6502/32.json.gz b/mynes-core/src/test/resources/harte/nes6502/32.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/32.json.gz rename to mynes-core/src/test/resources/harte/nes6502/32.json.gz diff --git a/src/test/resources/harte/nes6502/33.json.gz b/mynes-core/src/test/resources/harte/nes6502/33.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/33.json.gz rename to mynes-core/src/test/resources/harte/nes6502/33.json.gz diff --git a/src/test/resources/harte/nes6502/34.json.gz b/mynes-core/src/test/resources/harte/nes6502/34.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/34.json.gz rename to mynes-core/src/test/resources/harte/nes6502/34.json.gz diff --git a/src/test/resources/harte/nes6502/35.json.gz b/mynes-core/src/test/resources/harte/nes6502/35.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/35.json.gz rename to mynes-core/src/test/resources/harte/nes6502/35.json.gz diff --git a/src/test/resources/harte/nes6502/36.json.gz b/mynes-core/src/test/resources/harte/nes6502/36.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/36.json.gz rename to mynes-core/src/test/resources/harte/nes6502/36.json.gz diff --git a/src/test/resources/harte/nes6502/37.json.gz b/mynes-core/src/test/resources/harte/nes6502/37.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/37.json.gz rename to mynes-core/src/test/resources/harte/nes6502/37.json.gz diff --git a/src/test/resources/harte/nes6502/38.json.gz b/mynes-core/src/test/resources/harte/nes6502/38.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/38.json.gz rename to mynes-core/src/test/resources/harte/nes6502/38.json.gz diff --git a/src/test/resources/harte/nes6502/39.json.gz b/mynes-core/src/test/resources/harte/nes6502/39.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/39.json.gz rename to mynes-core/src/test/resources/harte/nes6502/39.json.gz diff --git a/src/test/resources/harte/nes6502/3a.json.gz b/mynes-core/src/test/resources/harte/nes6502/3a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/3a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/3a.json.gz diff --git a/src/test/resources/harte/nes6502/3b.json.gz b/mynes-core/src/test/resources/harte/nes6502/3b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/3b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/3b.json.gz diff --git a/src/test/resources/harte/nes6502/3c.json.gz b/mynes-core/src/test/resources/harte/nes6502/3c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/3c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/3c.json.gz diff --git a/src/test/resources/harte/nes6502/3d.json.gz b/mynes-core/src/test/resources/harte/nes6502/3d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/3d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/3d.json.gz diff --git a/src/test/resources/harte/nes6502/3e.json.gz b/mynes-core/src/test/resources/harte/nes6502/3e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/3e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/3e.json.gz diff --git a/src/test/resources/harte/nes6502/3f.json.gz b/mynes-core/src/test/resources/harte/nes6502/3f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/3f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/3f.json.gz diff --git a/src/test/resources/harte/nes6502/40.json.gz b/mynes-core/src/test/resources/harte/nes6502/40.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/40.json.gz rename to mynes-core/src/test/resources/harte/nes6502/40.json.gz diff --git a/src/test/resources/harte/nes6502/41.json.gz b/mynes-core/src/test/resources/harte/nes6502/41.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/41.json.gz rename to mynes-core/src/test/resources/harte/nes6502/41.json.gz diff --git a/src/test/resources/harte/nes6502/42.json.gz b/mynes-core/src/test/resources/harte/nes6502/42.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/42.json.gz rename to mynes-core/src/test/resources/harte/nes6502/42.json.gz diff --git a/src/test/resources/harte/nes6502/43.json.gz b/mynes-core/src/test/resources/harte/nes6502/43.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/43.json.gz rename to mynes-core/src/test/resources/harte/nes6502/43.json.gz diff --git a/src/test/resources/harte/nes6502/44.json.gz b/mynes-core/src/test/resources/harte/nes6502/44.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/44.json.gz rename to mynes-core/src/test/resources/harte/nes6502/44.json.gz diff --git a/src/test/resources/harte/nes6502/45.json.gz b/mynes-core/src/test/resources/harte/nes6502/45.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/45.json.gz rename to mynes-core/src/test/resources/harte/nes6502/45.json.gz diff --git a/src/test/resources/harte/nes6502/46.json.gz b/mynes-core/src/test/resources/harte/nes6502/46.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/46.json.gz rename to mynes-core/src/test/resources/harte/nes6502/46.json.gz diff --git a/src/test/resources/harte/nes6502/47.json.gz b/mynes-core/src/test/resources/harte/nes6502/47.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/47.json.gz rename to mynes-core/src/test/resources/harte/nes6502/47.json.gz diff --git a/src/test/resources/harte/nes6502/48.json.gz b/mynes-core/src/test/resources/harte/nes6502/48.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/48.json.gz rename to mynes-core/src/test/resources/harte/nes6502/48.json.gz diff --git a/src/test/resources/harte/nes6502/49.json.gz b/mynes-core/src/test/resources/harte/nes6502/49.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/49.json.gz rename to mynes-core/src/test/resources/harte/nes6502/49.json.gz diff --git a/src/test/resources/harte/nes6502/4a.json.gz b/mynes-core/src/test/resources/harte/nes6502/4a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/4a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/4a.json.gz diff --git a/src/test/resources/harte/nes6502/4b.json.gz b/mynes-core/src/test/resources/harte/nes6502/4b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/4b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/4b.json.gz diff --git a/src/test/resources/harte/nes6502/4c.json.gz b/mynes-core/src/test/resources/harte/nes6502/4c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/4c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/4c.json.gz diff --git a/src/test/resources/harte/nes6502/4d.json.gz b/mynes-core/src/test/resources/harte/nes6502/4d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/4d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/4d.json.gz diff --git a/src/test/resources/harte/nes6502/4e.json.gz b/mynes-core/src/test/resources/harte/nes6502/4e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/4e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/4e.json.gz diff --git a/src/test/resources/harte/nes6502/4f.json.gz b/mynes-core/src/test/resources/harte/nes6502/4f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/4f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/4f.json.gz diff --git a/src/test/resources/harte/nes6502/50.json.gz b/mynes-core/src/test/resources/harte/nes6502/50.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/50.json.gz rename to mynes-core/src/test/resources/harte/nes6502/50.json.gz diff --git a/src/test/resources/harte/nes6502/51.json.gz b/mynes-core/src/test/resources/harte/nes6502/51.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/51.json.gz rename to mynes-core/src/test/resources/harte/nes6502/51.json.gz diff --git a/src/test/resources/harte/nes6502/52.json.gz b/mynes-core/src/test/resources/harte/nes6502/52.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/52.json.gz rename to mynes-core/src/test/resources/harte/nes6502/52.json.gz diff --git a/src/test/resources/harte/nes6502/53.json.gz b/mynes-core/src/test/resources/harte/nes6502/53.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/53.json.gz rename to mynes-core/src/test/resources/harte/nes6502/53.json.gz diff --git a/src/test/resources/harte/nes6502/54.json.gz b/mynes-core/src/test/resources/harte/nes6502/54.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/54.json.gz rename to mynes-core/src/test/resources/harte/nes6502/54.json.gz diff --git a/src/test/resources/harte/nes6502/55.json.gz b/mynes-core/src/test/resources/harte/nes6502/55.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/55.json.gz rename to mynes-core/src/test/resources/harte/nes6502/55.json.gz diff --git a/src/test/resources/harte/nes6502/56.json.gz b/mynes-core/src/test/resources/harte/nes6502/56.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/56.json.gz rename to mynes-core/src/test/resources/harte/nes6502/56.json.gz diff --git a/src/test/resources/harte/nes6502/57.json.gz b/mynes-core/src/test/resources/harte/nes6502/57.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/57.json.gz rename to mynes-core/src/test/resources/harte/nes6502/57.json.gz diff --git a/src/test/resources/harte/nes6502/58.json.gz b/mynes-core/src/test/resources/harte/nes6502/58.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/58.json.gz rename to mynes-core/src/test/resources/harte/nes6502/58.json.gz diff --git a/src/test/resources/harte/nes6502/59.json.gz b/mynes-core/src/test/resources/harte/nes6502/59.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/59.json.gz rename to mynes-core/src/test/resources/harte/nes6502/59.json.gz diff --git a/src/test/resources/harte/nes6502/5a.json.gz b/mynes-core/src/test/resources/harte/nes6502/5a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/5a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/5a.json.gz diff --git a/src/test/resources/harte/nes6502/5b.json.gz b/mynes-core/src/test/resources/harte/nes6502/5b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/5b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/5b.json.gz diff --git a/src/test/resources/harte/nes6502/5c.json.gz b/mynes-core/src/test/resources/harte/nes6502/5c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/5c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/5c.json.gz diff --git a/src/test/resources/harte/nes6502/5d.json.gz b/mynes-core/src/test/resources/harte/nes6502/5d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/5d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/5d.json.gz diff --git a/src/test/resources/harte/nes6502/5e.json.gz b/mynes-core/src/test/resources/harte/nes6502/5e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/5e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/5e.json.gz diff --git a/src/test/resources/harte/nes6502/5f.json.gz b/mynes-core/src/test/resources/harte/nes6502/5f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/5f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/5f.json.gz diff --git a/src/test/resources/harte/nes6502/60.json.gz b/mynes-core/src/test/resources/harte/nes6502/60.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/60.json.gz rename to mynes-core/src/test/resources/harte/nes6502/60.json.gz diff --git a/src/test/resources/harte/nes6502/61.json.gz b/mynes-core/src/test/resources/harte/nes6502/61.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/61.json.gz rename to mynes-core/src/test/resources/harte/nes6502/61.json.gz diff --git a/src/test/resources/harte/nes6502/62.json.gz b/mynes-core/src/test/resources/harte/nes6502/62.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/62.json.gz rename to mynes-core/src/test/resources/harte/nes6502/62.json.gz diff --git a/src/test/resources/harte/nes6502/63.json.gz b/mynes-core/src/test/resources/harte/nes6502/63.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/63.json.gz rename to mynes-core/src/test/resources/harte/nes6502/63.json.gz diff --git a/src/test/resources/harte/nes6502/64.json.gz b/mynes-core/src/test/resources/harte/nes6502/64.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/64.json.gz rename to mynes-core/src/test/resources/harte/nes6502/64.json.gz diff --git a/src/test/resources/harte/nes6502/65.json.gz b/mynes-core/src/test/resources/harte/nes6502/65.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/65.json.gz rename to mynes-core/src/test/resources/harte/nes6502/65.json.gz diff --git a/src/test/resources/harte/nes6502/66.json.gz b/mynes-core/src/test/resources/harte/nes6502/66.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/66.json.gz rename to mynes-core/src/test/resources/harte/nes6502/66.json.gz diff --git a/src/test/resources/harte/nes6502/67.json.gz b/mynes-core/src/test/resources/harte/nes6502/67.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/67.json.gz rename to mynes-core/src/test/resources/harte/nes6502/67.json.gz diff --git a/src/test/resources/harte/nes6502/68.json.gz b/mynes-core/src/test/resources/harte/nes6502/68.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/68.json.gz rename to mynes-core/src/test/resources/harte/nes6502/68.json.gz diff --git a/src/test/resources/harte/nes6502/69.json.gz b/mynes-core/src/test/resources/harte/nes6502/69.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/69.json.gz rename to mynes-core/src/test/resources/harte/nes6502/69.json.gz diff --git a/src/test/resources/harte/nes6502/6a.json.gz b/mynes-core/src/test/resources/harte/nes6502/6a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/6a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/6a.json.gz diff --git a/src/test/resources/harte/nes6502/6b.json.gz b/mynes-core/src/test/resources/harte/nes6502/6b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/6b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/6b.json.gz diff --git a/src/test/resources/harte/nes6502/6c.json.gz b/mynes-core/src/test/resources/harte/nes6502/6c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/6c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/6c.json.gz diff --git a/src/test/resources/harte/nes6502/6d.json.gz b/mynes-core/src/test/resources/harte/nes6502/6d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/6d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/6d.json.gz diff --git a/src/test/resources/harte/nes6502/6e.json.gz b/mynes-core/src/test/resources/harte/nes6502/6e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/6e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/6e.json.gz diff --git a/src/test/resources/harte/nes6502/6f.json.gz b/mynes-core/src/test/resources/harte/nes6502/6f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/6f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/6f.json.gz diff --git a/src/test/resources/harte/nes6502/70.json.gz b/mynes-core/src/test/resources/harte/nes6502/70.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/70.json.gz rename to mynes-core/src/test/resources/harte/nes6502/70.json.gz diff --git a/src/test/resources/harte/nes6502/71.json.gz b/mynes-core/src/test/resources/harte/nes6502/71.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/71.json.gz rename to mynes-core/src/test/resources/harte/nes6502/71.json.gz diff --git a/src/test/resources/harte/nes6502/72.json.gz b/mynes-core/src/test/resources/harte/nes6502/72.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/72.json.gz rename to mynes-core/src/test/resources/harte/nes6502/72.json.gz diff --git a/src/test/resources/harte/nes6502/73.json.gz b/mynes-core/src/test/resources/harte/nes6502/73.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/73.json.gz rename to mynes-core/src/test/resources/harte/nes6502/73.json.gz diff --git a/src/test/resources/harte/nes6502/74.json.gz b/mynes-core/src/test/resources/harte/nes6502/74.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/74.json.gz rename to mynes-core/src/test/resources/harte/nes6502/74.json.gz diff --git a/src/test/resources/harte/nes6502/75.json.gz b/mynes-core/src/test/resources/harte/nes6502/75.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/75.json.gz rename to mynes-core/src/test/resources/harte/nes6502/75.json.gz diff --git a/src/test/resources/harte/nes6502/76.json.gz b/mynes-core/src/test/resources/harte/nes6502/76.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/76.json.gz rename to mynes-core/src/test/resources/harte/nes6502/76.json.gz diff --git a/src/test/resources/harte/nes6502/77.json.gz b/mynes-core/src/test/resources/harte/nes6502/77.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/77.json.gz rename to mynes-core/src/test/resources/harte/nes6502/77.json.gz diff --git a/src/test/resources/harte/nes6502/78.json.gz b/mynes-core/src/test/resources/harte/nes6502/78.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/78.json.gz rename to mynes-core/src/test/resources/harte/nes6502/78.json.gz diff --git a/src/test/resources/harte/nes6502/79.json.gz b/mynes-core/src/test/resources/harte/nes6502/79.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/79.json.gz rename to mynes-core/src/test/resources/harte/nes6502/79.json.gz diff --git a/src/test/resources/harte/nes6502/7a.json.gz b/mynes-core/src/test/resources/harte/nes6502/7a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/7a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/7a.json.gz diff --git a/src/test/resources/harte/nes6502/7b.json.gz b/mynes-core/src/test/resources/harte/nes6502/7b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/7b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/7b.json.gz diff --git a/src/test/resources/harte/nes6502/7c.json.gz b/mynes-core/src/test/resources/harte/nes6502/7c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/7c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/7c.json.gz diff --git a/src/test/resources/harte/nes6502/7d.json.gz b/mynes-core/src/test/resources/harte/nes6502/7d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/7d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/7d.json.gz diff --git a/src/test/resources/harte/nes6502/7e.json.gz b/mynes-core/src/test/resources/harte/nes6502/7e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/7e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/7e.json.gz diff --git a/src/test/resources/harte/nes6502/7f.json.gz b/mynes-core/src/test/resources/harte/nes6502/7f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/7f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/7f.json.gz diff --git a/src/test/resources/harte/nes6502/80.json.gz b/mynes-core/src/test/resources/harte/nes6502/80.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/80.json.gz rename to mynes-core/src/test/resources/harte/nes6502/80.json.gz diff --git a/src/test/resources/harte/nes6502/81.json.gz b/mynes-core/src/test/resources/harte/nes6502/81.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/81.json.gz rename to mynes-core/src/test/resources/harte/nes6502/81.json.gz diff --git a/src/test/resources/harte/nes6502/82.json.gz b/mynes-core/src/test/resources/harte/nes6502/82.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/82.json.gz rename to mynes-core/src/test/resources/harte/nes6502/82.json.gz diff --git a/src/test/resources/harte/nes6502/83.json.gz b/mynes-core/src/test/resources/harte/nes6502/83.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/83.json.gz rename to mynes-core/src/test/resources/harte/nes6502/83.json.gz diff --git a/src/test/resources/harte/nes6502/84.json.gz b/mynes-core/src/test/resources/harte/nes6502/84.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/84.json.gz rename to mynes-core/src/test/resources/harte/nes6502/84.json.gz diff --git a/src/test/resources/harte/nes6502/85.json.gz b/mynes-core/src/test/resources/harte/nes6502/85.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/85.json.gz rename to mynes-core/src/test/resources/harte/nes6502/85.json.gz diff --git a/src/test/resources/harte/nes6502/86.json.gz b/mynes-core/src/test/resources/harte/nes6502/86.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/86.json.gz rename to mynes-core/src/test/resources/harte/nes6502/86.json.gz diff --git a/src/test/resources/harte/nes6502/87.json.gz b/mynes-core/src/test/resources/harte/nes6502/87.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/87.json.gz rename to mynes-core/src/test/resources/harte/nes6502/87.json.gz diff --git a/src/test/resources/harte/nes6502/88.json.gz b/mynes-core/src/test/resources/harte/nes6502/88.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/88.json.gz rename to mynes-core/src/test/resources/harte/nes6502/88.json.gz diff --git a/src/test/resources/harte/nes6502/89.json.gz b/mynes-core/src/test/resources/harte/nes6502/89.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/89.json.gz rename to mynes-core/src/test/resources/harte/nes6502/89.json.gz diff --git a/src/test/resources/harte/nes6502/8a.json.gz b/mynes-core/src/test/resources/harte/nes6502/8a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/8a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/8a.json.gz diff --git a/src/test/resources/harte/nes6502/8b.json.gz b/mynes-core/src/test/resources/harte/nes6502/8b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/8b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/8b.json.gz diff --git a/src/test/resources/harte/nes6502/8c.json.gz b/mynes-core/src/test/resources/harte/nes6502/8c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/8c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/8c.json.gz diff --git a/src/test/resources/harte/nes6502/8d.json.gz b/mynes-core/src/test/resources/harte/nes6502/8d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/8d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/8d.json.gz diff --git a/src/test/resources/harte/nes6502/8e.json.gz b/mynes-core/src/test/resources/harte/nes6502/8e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/8e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/8e.json.gz diff --git a/src/test/resources/harte/nes6502/8f.json.gz b/mynes-core/src/test/resources/harte/nes6502/8f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/8f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/8f.json.gz diff --git a/src/test/resources/harte/nes6502/90.json.gz b/mynes-core/src/test/resources/harte/nes6502/90.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/90.json.gz rename to mynes-core/src/test/resources/harte/nes6502/90.json.gz diff --git a/src/test/resources/harte/nes6502/91.json.gz b/mynes-core/src/test/resources/harte/nes6502/91.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/91.json.gz rename to mynes-core/src/test/resources/harte/nes6502/91.json.gz diff --git a/src/test/resources/harte/nes6502/92.json.gz b/mynes-core/src/test/resources/harte/nes6502/92.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/92.json.gz rename to mynes-core/src/test/resources/harte/nes6502/92.json.gz diff --git a/src/test/resources/harte/nes6502/93.json.gz b/mynes-core/src/test/resources/harte/nes6502/93.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/93.json.gz rename to mynes-core/src/test/resources/harte/nes6502/93.json.gz diff --git a/src/test/resources/harte/nes6502/94.json.gz b/mynes-core/src/test/resources/harte/nes6502/94.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/94.json.gz rename to mynes-core/src/test/resources/harte/nes6502/94.json.gz diff --git a/src/test/resources/harte/nes6502/95.json.gz b/mynes-core/src/test/resources/harte/nes6502/95.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/95.json.gz rename to mynes-core/src/test/resources/harte/nes6502/95.json.gz diff --git a/src/test/resources/harte/nes6502/96.json.gz b/mynes-core/src/test/resources/harte/nes6502/96.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/96.json.gz rename to mynes-core/src/test/resources/harte/nes6502/96.json.gz diff --git a/src/test/resources/harte/nes6502/97.json.gz b/mynes-core/src/test/resources/harte/nes6502/97.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/97.json.gz rename to mynes-core/src/test/resources/harte/nes6502/97.json.gz diff --git a/src/test/resources/harte/nes6502/98.json.gz b/mynes-core/src/test/resources/harte/nes6502/98.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/98.json.gz rename to mynes-core/src/test/resources/harte/nes6502/98.json.gz diff --git a/src/test/resources/harte/nes6502/99.json.gz b/mynes-core/src/test/resources/harte/nes6502/99.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/99.json.gz rename to mynes-core/src/test/resources/harte/nes6502/99.json.gz diff --git a/src/test/resources/harte/nes6502/9a.json.gz b/mynes-core/src/test/resources/harte/nes6502/9a.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/9a.json.gz rename to mynes-core/src/test/resources/harte/nes6502/9a.json.gz diff --git a/src/test/resources/harte/nes6502/9b.json.gz b/mynes-core/src/test/resources/harte/nes6502/9b.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/9b.json.gz rename to mynes-core/src/test/resources/harte/nes6502/9b.json.gz diff --git a/src/test/resources/harte/nes6502/9c.json.gz b/mynes-core/src/test/resources/harte/nes6502/9c.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/9c.json.gz rename to mynes-core/src/test/resources/harte/nes6502/9c.json.gz diff --git a/src/test/resources/harte/nes6502/9d.json.gz b/mynes-core/src/test/resources/harte/nes6502/9d.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/9d.json.gz rename to mynes-core/src/test/resources/harte/nes6502/9d.json.gz diff --git a/src/test/resources/harte/nes6502/9e.json.gz b/mynes-core/src/test/resources/harte/nes6502/9e.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/9e.json.gz rename to mynes-core/src/test/resources/harte/nes6502/9e.json.gz diff --git a/src/test/resources/harte/nes6502/9f.json.gz b/mynes-core/src/test/resources/harte/nes6502/9f.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/9f.json.gz rename to mynes-core/src/test/resources/harte/nes6502/9f.json.gz diff --git a/src/test/resources/harte/nes6502/PROVENANCE b/mynes-core/src/test/resources/harte/nes6502/PROVENANCE similarity index 100% rename from src/test/resources/harte/nes6502/PROVENANCE rename to mynes-core/src/test/resources/harte/nes6502/PROVENANCE diff --git a/src/test/resources/harte/nes6502/a0.json.gz b/mynes-core/src/test/resources/harte/nes6502/a0.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a0.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a0.json.gz diff --git a/src/test/resources/harte/nes6502/a1.json.gz b/mynes-core/src/test/resources/harte/nes6502/a1.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a1.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a1.json.gz diff --git a/src/test/resources/harte/nes6502/a2.json.gz b/mynes-core/src/test/resources/harte/nes6502/a2.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a2.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a2.json.gz diff --git a/src/test/resources/harte/nes6502/a3.json.gz b/mynes-core/src/test/resources/harte/nes6502/a3.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a3.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a3.json.gz diff --git a/src/test/resources/harte/nes6502/a4.json.gz b/mynes-core/src/test/resources/harte/nes6502/a4.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a4.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a4.json.gz diff --git a/src/test/resources/harte/nes6502/a5.json.gz b/mynes-core/src/test/resources/harte/nes6502/a5.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a5.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a5.json.gz diff --git a/src/test/resources/harte/nes6502/a6.json.gz b/mynes-core/src/test/resources/harte/nes6502/a6.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a6.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a6.json.gz diff --git a/src/test/resources/harte/nes6502/a7.json.gz b/mynes-core/src/test/resources/harte/nes6502/a7.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a7.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a7.json.gz diff --git a/src/test/resources/harte/nes6502/a8.json.gz b/mynes-core/src/test/resources/harte/nes6502/a8.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a8.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a8.json.gz diff --git a/src/test/resources/harte/nes6502/a9.json.gz b/mynes-core/src/test/resources/harte/nes6502/a9.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/a9.json.gz rename to mynes-core/src/test/resources/harte/nes6502/a9.json.gz diff --git a/src/test/resources/harte/nes6502/aa.json.gz b/mynes-core/src/test/resources/harte/nes6502/aa.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/aa.json.gz rename to mynes-core/src/test/resources/harte/nes6502/aa.json.gz diff --git a/src/test/resources/harte/nes6502/ab.json.gz b/mynes-core/src/test/resources/harte/nes6502/ab.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ab.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ab.json.gz diff --git a/src/test/resources/harte/nes6502/ac.json.gz b/mynes-core/src/test/resources/harte/nes6502/ac.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ac.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ac.json.gz diff --git a/src/test/resources/harte/nes6502/ad.json.gz b/mynes-core/src/test/resources/harte/nes6502/ad.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ad.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ad.json.gz diff --git a/src/test/resources/harte/nes6502/ae.json.gz b/mynes-core/src/test/resources/harte/nes6502/ae.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ae.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ae.json.gz diff --git a/src/test/resources/harte/nes6502/af.json.gz b/mynes-core/src/test/resources/harte/nes6502/af.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/af.json.gz rename to mynes-core/src/test/resources/harte/nes6502/af.json.gz diff --git a/src/test/resources/harte/nes6502/b0.json.gz b/mynes-core/src/test/resources/harte/nes6502/b0.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b0.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b0.json.gz diff --git a/src/test/resources/harte/nes6502/b1.json.gz b/mynes-core/src/test/resources/harte/nes6502/b1.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b1.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b1.json.gz diff --git a/src/test/resources/harte/nes6502/b2.json.gz b/mynes-core/src/test/resources/harte/nes6502/b2.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b2.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b2.json.gz diff --git a/src/test/resources/harte/nes6502/b3.json.gz b/mynes-core/src/test/resources/harte/nes6502/b3.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b3.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b3.json.gz diff --git a/src/test/resources/harte/nes6502/b4.json.gz b/mynes-core/src/test/resources/harte/nes6502/b4.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b4.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b4.json.gz diff --git a/src/test/resources/harte/nes6502/b5.json.gz b/mynes-core/src/test/resources/harte/nes6502/b5.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b5.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b5.json.gz diff --git a/src/test/resources/harte/nes6502/b6.json.gz b/mynes-core/src/test/resources/harte/nes6502/b6.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b6.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b6.json.gz diff --git a/src/test/resources/harte/nes6502/b7.json.gz b/mynes-core/src/test/resources/harte/nes6502/b7.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b7.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b7.json.gz diff --git a/src/test/resources/harte/nes6502/b8.json.gz b/mynes-core/src/test/resources/harte/nes6502/b8.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b8.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b8.json.gz diff --git a/src/test/resources/harte/nes6502/b9.json.gz b/mynes-core/src/test/resources/harte/nes6502/b9.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/b9.json.gz rename to mynes-core/src/test/resources/harte/nes6502/b9.json.gz diff --git a/src/test/resources/harte/nes6502/ba.json.gz b/mynes-core/src/test/resources/harte/nes6502/ba.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ba.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ba.json.gz diff --git a/src/test/resources/harte/nes6502/bb.json.gz b/mynes-core/src/test/resources/harte/nes6502/bb.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/bb.json.gz rename to mynes-core/src/test/resources/harte/nes6502/bb.json.gz diff --git a/src/test/resources/harte/nes6502/bc.json.gz b/mynes-core/src/test/resources/harte/nes6502/bc.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/bc.json.gz rename to mynes-core/src/test/resources/harte/nes6502/bc.json.gz diff --git a/src/test/resources/harte/nes6502/bd.json.gz b/mynes-core/src/test/resources/harte/nes6502/bd.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/bd.json.gz rename to mynes-core/src/test/resources/harte/nes6502/bd.json.gz diff --git a/src/test/resources/harte/nes6502/be.json.gz b/mynes-core/src/test/resources/harte/nes6502/be.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/be.json.gz rename to mynes-core/src/test/resources/harte/nes6502/be.json.gz diff --git a/src/test/resources/harte/nes6502/bf.json.gz b/mynes-core/src/test/resources/harte/nes6502/bf.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/bf.json.gz rename to mynes-core/src/test/resources/harte/nes6502/bf.json.gz diff --git a/src/test/resources/harte/nes6502/c0.json.gz b/mynes-core/src/test/resources/harte/nes6502/c0.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c0.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c0.json.gz diff --git a/src/test/resources/harte/nes6502/c1.json.gz b/mynes-core/src/test/resources/harte/nes6502/c1.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c1.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c1.json.gz diff --git a/src/test/resources/harte/nes6502/c2.json.gz b/mynes-core/src/test/resources/harte/nes6502/c2.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c2.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c2.json.gz diff --git a/src/test/resources/harte/nes6502/c3.json.gz b/mynes-core/src/test/resources/harte/nes6502/c3.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c3.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c3.json.gz diff --git a/src/test/resources/harte/nes6502/c4.json.gz b/mynes-core/src/test/resources/harte/nes6502/c4.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c4.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c4.json.gz diff --git a/src/test/resources/harte/nes6502/c5.json.gz b/mynes-core/src/test/resources/harte/nes6502/c5.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c5.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c5.json.gz diff --git a/src/test/resources/harte/nes6502/c6.json.gz b/mynes-core/src/test/resources/harte/nes6502/c6.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c6.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c6.json.gz diff --git a/src/test/resources/harte/nes6502/c7.json.gz b/mynes-core/src/test/resources/harte/nes6502/c7.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c7.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c7.json.gz diff --git a/src/test/resources/harte/nes6502/c8.json.gz b/mynes-core/src/test/resources/harte/nes6502/c8.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c8.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c8.json.gz diff --git a/src/test/resources/harte/nes6502/c9.json.gz b/mynes-core/src/test/resources/harte/nes6502/c9.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/c9.json.gz rename to mynes-core/src/test/resources/harte/nes6502/c9.json.gz diff --git a/src/test/resources/harte/nes6502/ca.json.gz b/mynes-core/src/test/resources/harte/nes6502/ca.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ca.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ca.json.gz diff --git a/src/test/resources/harte/nes6502/cb.json.gz b/mynes-core/src/test/resources/harte/nes6502/cb.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/cb.json.gz rename to mynes-core/src/test/resources/harte/nes6502/cb.json.gz diff --git a/src/test/resources/harte/nes6502/cc.json.gz b/mynes-core/src/test/resources/harte/nes6502/cc.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/cc.json.gz rename to mynes-core/src/test/resources/harte/nes6502/cc.json.gz diff --git a/src/test/resources/harte/nes6502/cd.json.gz b/mynes-core/src/test/resources/harte/nes6502/cd.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/cd.json.gz rename to mynes-core/src/test/resources/harte/nes6502/cd.json.gz diff --git a/src/test/resources/harte/nes6502/ce.json.gz b/mynes-core/src/test/resources/harte/nes6502/ce.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ce.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ce.json.gz diff --git a/src/test/resources/harte/nes6502/cf.json.gz b/mynes-core/src/test/resources/harte/nes6502/cf.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/cf.json.gz rename to mynes-core/src/test/resources/harte/nes6502/cf.json.gz diff --git a/src/test/resources/harte/nes6502/d0.json.gz b/mynes-core/src/test/resources/harte/nes6502/d0.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d0.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d0.json.gz diff --git a/src/test/resources/harte/nes6502/d1.json.gz b/mynes-core/src/test/resources/harte/nes6502/d1.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d1.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d1.json.gz diff --git a/src/test/resources/harte/nes6502/d2.json.gz b/mynes-core/src/test/resources/harte/nes6502/d2.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d2.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d2.json.gz diff --git a/src/test/resources/harte/nes6502/d3.json.gz b/mynes-core/src/test/resources/harte/nes6502/d3.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d3.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d3.json.gz diff --git a/src/test/resources/harte/nes6502/d4.json.gz b/mynes-core/src/test/resources/harte/nes6502/d4.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d4.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d4.json.gz diff --git a/src/test/resources/harte/nes6502/d5.json.gz b/mynes-core/src/test/resources/harte/nes6502/d5.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d5.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d5.json.gz diff --git a/src/test/resources/harte/nes6502/d6.json.gz b/mynes-core/src/test/resources/harte/nes6502/d6.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d6.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d6.json.gz diff --git a/src/test/resources/harte/nes6502/d7.json.gz b/mynes-core/src/test/resources/harte/nes6502/d7.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d7.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d7.json.gz diff --git a/src/test/resources/harte/nes6502/d8.json.gz b/mynes-core/src/test/resources/harte/nes6502/d8.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d8.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d8.json.gz diff --git a/src/test/resources/harte/nes6502/d9.json.gz b/mynes-core/src/test/resources/harte/nes6502/d9.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/d9.json.gz rename to mynes-core/src/test/resources/harte/nes6502/d9.json.gz diff --git a/src/test/resources/harte/nes6502/da.json.gz b/mynes-core/src/test/resources/harte/nes6502/da.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/da.json.gz rename to mynes-core/src/test/resources/harte/nes6502/da.json.gz diff --git a/src/test/resources/harte/nes6502/db.json.gz b/mynes-core/src/test/resources/harte/nes6502/db.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/db.json.gz rename to mynes-core/src/test/resources/harte/nes6502/db.json.gz diff --git a/src/test/resources/harte/nes6502/dc.json.gz b/mynes-core/src/test/resources/harte/nes6502/dc.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/dc.json.gz rename to mynes-core/src/test/resources/harte/nes6502/dc.json.gz diff --git a/src/test/resources/harte/nes6502/dd.json.gz b/mynes-core/src/test/resources/harte/nes6502/dd.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/dd.json.gz rename to mynes-core/src/test/resources/harte/nes6502/dd.json.gz diff --git a/src/test/resources/harte/nes6502/de.json.gz b/mynes-core/src/test/resources/harte/nes6502/de.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/de.json.gz rename to mynes-core/src/test/resources/harte/nes6502/de.json.gz diff --git a/src/test/resources/harte/nes6502/df.json.gz b/mynes-core/src/test/resources/harte/nes6502/df.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/df.json.gz rename to mynes-core/src/test/resources/harte/nes6502/df.json.gz diff --git a/src/test/resources/harte/nes6502/e0.json.gz b/mynes-core/src/test/resources/harte/nes6502/e0.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e0.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e0.json.gz diff --git a/src/test/resources/harte/nes6502/e1.json.gz b/mynes-core/src/test/resources/harte/nes6502/e1.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e1.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e1.json.gz diff --git a/src/test/resources/harte/nes6502/e2.json.gz b/mynes-core/src/test/resources/harte/nes6502/e2.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e2.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e2.json.gz diff --git a/src/test/resources/harte/nes6502/e3.json.gz b/mynes-core/src/test/resources/harte/nes6502/e3.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e3.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e3.json.gz diff --git a/src/test/resources/harte/nes6502/e4.json.gz b/mynes-core/src/test/resources/harte/nes6502/e4.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e4.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e4.json.gz diff --git a/src/test/resources/harte/nes6502/e5.json.gz b/mynes-core/src/test/resources/harte/nes6502/e5.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e5.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e5.json.gz diff --git a/src/test/resources/harte/nes6502/e6.json.gz b/mynes-core/src/test/resources/harte/nes6502/e6.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e6.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e6.json.gz diff --git a/src/test/resources/harte/nes6502/e7.json.gz b/mynes-core/src/test/resources/harte/nes6502/e7.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e7.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e7.json.gz diff --git a/src/test/resources/harte/nes6502/e8.json.gz b/mynes-core/src/test/resources/harte/nes6502/e8.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e8.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e8.json.gz diff --git a/src/test/resources/harte/nes6502/e9.json.gz b/mynes-core/src/test/resources/harte/nes6502/e9.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/e9.json.gz rename to mynes-core/src/test/resources/harte/nes6502/e9.json.gz diff --git a/src/test/resources/harte/nes6502/ea.json.gz b/mynes-core/src/test/resources/harte/nes6502/ea.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ea.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ea.json.gz diff --git a/src/test/resources/harte/nes6502/eb.json.gz b/mynes-core/src/test/resources/harte/nes6502/eb.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/eb.json.gz rename to mynes-core/src/test/resources/harte/nes6502/eb.json.gz diff --git a/src/test/resources/harte/nes6502/ec.json.gz b/mynes-core/src/test/resources/harte/nes6502/ec.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ec.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ec.json.gz diff --git a/src/test/resources/harte/nes6502/ed.json.gz b/mynes-core/src/test/resources/harte/nes6502/ed.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ed.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ed.json.gz diff --git a/src/test/resources/harte/nes6502/ee.json.gz b/mynes-core/src/test/resources/harte/nes6502/ee.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ee.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ee.json.gz diff --git a/src/test/resources/harte/nes6502/ef.json.gz b/mynes-core/src/test/resources/harte/nes6502/ef.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ef.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ef.json.gz diff --git a/src/test/resources/harte/nes6502/f0.json.gz b/mynes-core/src/test/resources/harte/nes6502/f0.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f0.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f0.json.gz diff --git a/src/test/resources/harte/nes6502/f1.json.gz b/mynes-core/src/test/resources/harte/nes6502/f1.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f1.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f1.json.gz diff --git a/src/test/resources/harte/nes6502/f2.json.gz b/mynes-core/src/test/resources/harte/nes6502/f2.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f2.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f2.json.gz diff --git a/src/test/resources/harte/nes6502/f3.json.gz b/mynes-core/src/test/resources/harte/nes6502/f3.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f3.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f3.json.gz diff --git a/src/test/resources/harte/nes6502/f4.json.gz b/mynes-core/src/test/resources/harte/nes6502/f4.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f4.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f4.json.gz diff --git a/src/test/resources/harte/nes6502/f5.json.gz b/mynes-core/src/test/resources/harte/nes6502/f5.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f5.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f5.json.gz diff --git a/src/test/resources/harte/nes6502/f6.json.gz b/mynes-core/src/test/resources/harte/nes6502/f6.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f6.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f6.json.gz diff --git a/src/test/resources/harte/nes6502/f7.json.gz b/mynes-core/src/test/resources/harte/nes6502/f7.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f7.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f7.json.gz diff --git a/src/test/resources/harte/nes6502/f8.json.gz b/mynes-core/src/test/resources/harte/nes6502/f8.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f8.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f8.json.gz diff --git a/src/test/resources/harte/nes6502/f9.json.gz b/mynes-core/src/test/resources/harte/nes6502/f9.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/f9.json.gz rename to mynes-core/src/test/resources/harte/nes6502/f9.json.gz diff --git a/src/test/resources/harte/nes6502/fa.json.gz b/mynes-core/src/test/resources/harte/nes6502/fa.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/fa.json.gz rename to mynes-core/src/test/resources/harte/nes6502/fa.json.gz diff --git a/src/test/resources/harte/nes6502/fb.json.gz b/mynes-core/src/test/resources/harte/nes6502/fb.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/fb.json.gz rename to mynes-core/src/test/resources/harte/nes6502/fb.json.gz diff --git a/src/test/resources/harte/nes6502/fc.json.gz b/mynes-core/src/test/resources/harte/nes6502/fc.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/fc.json.gz rename to mynes-core/src/test/resources/harte/nes6502/fc.json.gz diff --git a/src/test/resources/harte/nes6502/fd.json.gz b/mynes-core/src/test/resources/harte/nes6502/fd.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/fd.json.gz rename to mynes-core/src/test/resources/harte/nes6502/fd.json.gz diff --git a/src/test/resources/harte/nes6502/fe.json.gz b/mynes-core/src/test/resources/harte/nes6502/fe.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/fe.json.gz rename to mynes-core/src/test/resources/harte/nes6502/fe.json.gz diff --git a/src/test/resources/harte/nes6502/ff.json.gz b/mynes-core/src/test/resources/harte/nes6502/ff.json.gz similarity index 100% rename from src/test/resources/harte/nes6502/ff.json.gz rename to mynes-core/src/test/resources/harte/nes6502/ff.json.gz diff --git a/src/test/resources/instr-misc/01-abs_x_wrap.nes b/mynes-core/src/test/resources/instr-misc/01-abs_x_wrap.nes similarity index 100% rename from src/test/resources/instr-misc/01-abs_x_wrap.nes rename to mynes-core/src/test/resources/instr-misc/01-abs_x_wrap.nes diff --git a/src/test/resources/instr-misc/02-branch_wrap.nes b/mynes-core/src/test/resources/instr-misc/02-branch_wrap.nes similarity index 100% rename from src/test/resources/instr-misc/02-branch_wrap.nes rename to mynes-core/src/test/resources/instr-misc/02-branch_wrap.nes diff --git a/src/test/resources/instr-misc/03-dummy_reads.nes b/mynes-core/src/test/resources/instr-misc/03-dummy_reads.nes similarity index 100% rename from src/test/resources/instr-misc/03-dummy_reads.nes rename to mynes-core/src/test/resources/instr-misc/03-dummy_reads.nes diff --git a/src/test/resources/instr-misc/04-dummy_reads_apu.nes b/mynes-core/src/test/resources/instr-misc/04-dummy_reads_apu.nes similarity index 100% rename from src/test/resources/instr-misc/04-dummy_reads_apu.nes rename to mynes-core/src/test/resources/instr-misc/04-dummy_reads_apu.nes diff --git a/src/test/resources/instr-misc/readme.txt b/mynes-core/src/test/resources/instr-misc/readme.txt similarity index 100% rename from src/test/resources/instr-misc/readme.txt rename to mynes-core/src/test/resources/instr-misc/readme.txt diff --git a/src/test/resources/instr-test-v5/01-basics.nes b/mynes-core/src/test/resources/instr-test-v5/01-basics.nes similarity index 100% rename from src/test/resources/instr-test-v5/01-basics.nes rename to mynes-core/src/test/resources/instr-test-v5/01-basics.nes diff --git a/src/test/resources/instr-test-v5/02-implied.nes b/mynes-core/src/test/resources/instr-test-v5/02-implied.nes similarity index 100% rename from src/test/resources/instr-test-v5/02-implied.nes rename to mynes-core/src/test/resources/instr-test-v5/02-implied.nes diff --git a/src/test/resources/instr-test-v5/03-immediate.nes b/mynes-core/src/test/resources/instr-test-v5/03-immediate.nes similarity index 100% rename from src/test/resources/instr-test-v5/03-immediate.nes rename to mynes-core/src/test/resources/instr-test-v5/03-immediate.nes diff --git a/src/test/resources/instr-test-v5/04-zero_page.nes b/mynes-core/src/test/resources/instr-test-v5/04-zero_page.nes similarity index 100% rename from src/test/resources/instr-test-v5/04-zero_page.nes rename to mynes-core/src/test/resources/instr-test-v5/04-zero_page.nes diff --git a/src/test/resources/instr-test-v5/05-zp_xy.nes b/mynes-core/src/test/resources/instr-test-v5/05-zp_xy.nes similarity index 100% rename from src/test/resources/instr-test-v5/05-zp_xy.nes rename to mynes-core/src/test/resources/instr-test-v5/05-zp_xy.nes diff --git a/src/test/resources/instr-test-v5/06-absolute.nes b/mynes-core/src/test/resources/instr-test-v5/06-absolute.nes similarity index 100% rename from src/test/resources/instr-test-v5/06-absolute.nes rename to mynes-core/src/test/resources/instr-test-v5/06-absolute.nes diff --git a/src/test/resources/instr-test-v5/07-abs_xy.nes b/mynes-core/src/test/resources/instr-test-v5/07-abs_xy.nes similarity index 100% rename from src/test/resources/instr-test-v5/07-abs_xy.nes rename to mynes-core/src/test/resources/instr-test-v5/07-abs_xy.nes diff --git a/src/test/resources/instr-test-v5/08-ind_x.nes b/mynes-core/src/test/resources/instr-test-v5/08-ind_x.nes similarity index 100% rename from src/test/resources/instr-test-v5/08-ind_x.nes rename to mynes-core/src/test/resources/instr-test-v5/08-ind_x.nes diff --git a/src/test/resources/instr-test-v5/09-ind_y.nes b/mynes-core/src/test/resources/instr-test-v5/09-ind_y.nes similarity index 100% rename from src/test/resources/instr-test-v5/09-ind_y.nes rename to mynes-core/src/test/resources/instr-test-v5/09-ind_y.nes diff --git a/src/test/resources/instr-test-v5/10-branches.nes b/mynes-core/src/test/resources/instr-test-v5/10-branches.nes similarity index 100% rename from src/test/resources/instr-test-v5/10-branches.nes rename to mynes-core/src/test/resources/instr-test-v5/10-branches.nes diff --git a/src/test/resources/instr-test-v5/11-stack.nes b/mynes-core/src/test/resources/instr-test-v5/11-stack.nes similarity index 100% rename from src/test/resources/instr-test-v5/11-stack.nes rename to mynes-core/src/test/resources/instr-test-v5/11-stack.nes diff --git a/src/test/resources/instr-test-v5/12-jmp_jsr.nes b/mynes-core/src/test/resources/instr-test-v5/12-jmp_jsr.nes similarity index 100% rename from src/test/resources/instr-test-v5/12-jmp_jsr.nes rename to mynes-core/src/test/resources/instr-test-v5/12-jmp_jsr.nes diff --git a/src/test/resources/instr-test-v5/13-rts.nes b/mynes-core/src/test/resources/instr-test-v5/13-rts.nes similarity index 100% rename from src/test/resources/instr-test-v5/13-rts.nes rename to mynes-core/src/test/resources/instr-test-v5/13-rts.nes diff --git a/src/test/resources/instr-test-v5/14-rti.nes b/mynes-core/src/test/resources/instr-test-v5/14-rti.nes similarity index 100% rename from src/test/resources/instr-test-v5/14-rti.nes rename to mynes-core/src/test/resources/instr-test-v5/14-rti.nes diff --git a/src/test/resources/instr-test-v5/15-brk.nes b/mynes-core/src/test/resources/instr-test-v5/15-brk.nes similarity index 100% rename from src/test/resources/instr-test-v5/15-brk.nes rename to mynes-core/src/test/resources/instr-test-v5/15-brk.nes diff --git a/src/test/resources/instr-test-v5/16-special.nes b/mynes-core/src/test/resources/instr-test-v5/16-special.nes similarity index 100% rename from src/test/resources/instr-test-v5/16-special.nes rename to mynes-core/src/test/resources/instr-test-v5/16-special.nes diff --git a/src/test/resources/instr-test-v5/official_only.nes b/mynes-core/src/test/resources/instr-test-v5/official_only.nes similarity index 100% rename from src/test/resources/instr-test-v5/official_only.nes rename to mynes-core/src/test/resources/instr-test-v5/official_only.nes diff --git a/src/test/resources/instr-timing/instr-timing.nes b/mynes-core/src/test/resources/instr-timing/instr-timing.nes similarity index 100% rename from src/test/resources/instr-timing/instr-timing.nes rename to mynes-core/src/test/resources/instr-timing/instr-timing.nes diff --git a/src/test/resources/instr-timing/readme.txt b/mynes-core/src/test/resources/instr-timing/readme.txt similarity index 100% rename from src/test/resources/instr-timing/readme.txt rename to mynes-core/src/test/resources/instr-timing/readme.txt diff --git a/src/test/resources/mmc3-test-2/1-clocking.nes b/mynes-core/src/test/resources/mmc3-test-2/1-clocking.nes similarity index 100% rename from src/test/resources/mmc3-test-2/1-clocking.nes rename to mynes-core/src/test/resources/mmc3-test-2/1-clocking.nes diff --git a/src/test/resources/mmc3-test-2/2-details.nes b/mynes-core/src/test/resources/mmc3-test-2/2-details.nes similarity index 100% rename from src/test/resources/mmc3-test-2/2-details.nes rename to mynes-core/src/test/resources/mmc3-test-2/2-details.nes diff --git a/src/test/resources/mmc3-test-2/3-A12_clocking.nes b/mynes-core/src/test/resources/mmc3-test-2/3-A12_clocking.nes similarity index 100% rename from src/test/resources/mmc3-test-2/3-A12_clocking.nes rename to mynes-core/src/test/resources/mmc3-test-2/3-A12_clocking.nes diff --git a/src/test/resources/mmc3-test-2/4-scanline_timing.nes b/mynes-core/src/test/resources/mmc3-test-2/4-scanline_timing.nes similarity index 100% rename from src/test/resources/mmc3-test-2/4-scanline_timing.nes rename to mynes-core/src/test/resources/mmc3-test-2/4-scanline_timing.nes diff --git a/src/test/resources/mmc3-test-2/5-MMC3.nes b/mynes-core/src/test/resources/mmc3-test-2/5-MMC3.nes similarity index 100% rename from src/test/resources/mmc3-test-2/5-MMC3.nes rename to mynes-core/src/test/resources/mmc3-test-2/5-MMC3.nes diff --git a/src/test/resources/mmc3-test-2/6-MMC3_alt.nes b/mynes-core/src/test/resources/mmc3-test-2/6-MMC3_alt.nes similarity index 100% rename from src/test/resources/mmc3-test-2/6-MMC3_alt.nes rename to mynes-core/src/test/resources/mmc3-test-2/6-MMC3_alt.nes diff --git a/src/test/resources/mmc3-test-2/readme.txt b/mynes-core/src/test/resources/mmc3-test-2/readme.txt similarity index 100% rename from src/test/resources/mmc3-test-2/readme.txt rename to mynes-core/src/test/resources/mmc3-test-2/readme.txt diff --git a/src/test/resources/nestest/nestest.log b/mynes-core/src/test/resources/nestest/nestest.log similarity index 100% rename from src/test/resources/nestest/nestest.log rename to mynes-core/src/test/resources/nestest/nestest.log diff --git a/src/test/resources/nestest/nestest.nes b/mynes-core/src/test/resources/nestest/nestest.nes similarity index 100% rename from src/test/resources/nestest/nestest.nes rename to mynes-core/src/test/resources/nestest/nestest.nes diff --git a/src/test/resources/nestest/nestest.txt b/mynes-core/src/test/resources/nestest/nestest.txt similarity index 100% rename from src/test/resources/nestest/nestest.txt rename to mynes-core/src/test/resources/nestest/nestest.txt diff --git a/src/test/resources/oam/oam_read.nes b/mynes-core/src/test/resources/oam/oam_read.nes similarity index 100% rename from src/test/resources/oam/oam_read.nes rename to mynes-core/src/test/resources/oam/oam_read.nes diff --git a/src/test/resources/oam/oam_read.readme.txt b/mynes-core/src/test/resources/oam/oam_read.readme.txt similarity index 100% rename from src/test/resources/oam/oam_read.readme.txt rename to mynes-core/src/test/resources/oam/oam_read.readme.txt diff --git a/src/test/resources/oam/oam_stress.nes b/mynes-core/src/test/resources/oam/oam_stress.nes similarity index 100% rename from src/test/resources/oam/oam_stress.nes rename to mynes-core/src/test/resources/oam/oam_stress.nes diff --git a/src/test/resources/oam/oam_stress.readme.txt b/mynes-core/src/test/resources/oam/oam_stress.readme.txt similarity index 100% rename from src/test/resources/oam/oam_stress.readme.txt rename to mynes-core/src/test/resources/oam/oam_stress.readme.txt diff --git a/src/test/resources/ppu-open-bus/ppu_open_bus.nes b/mynes-core/src/test/resources/ppu-open-bus/ppu_open_bus.nes similarity index 100% rename from src/test/resources/ppu-open-bus/ppu_open_bus.nes rename to mynes-core/src/test/resources/ppu-open-bus/ppu_open_bus.nes diff --git a/src/test/resources/ppu-open-bus/readme.txt b/mynes-core/src/test/resources/ppu-open-bus/readme.txt similarity index 100% rename from src/test/resources/ppu-open-bus/readme.txt rename to mynes-core/src/test/resources/ppu-open-bus/readme.txt diff --git a/src/test/resources/ppu-read-buffer/readme.txt b/mynes-core/src/test/resources/ppu-read-buffer/readme.txt similarity index 100% rename from src/test/resources/ppu-read-buffer/readme.txt rename to mynes-core/src/test/resources/ppu-read-buffer/readme.txt diff --git a/src/test/resources/ppu-read-buffer/test_ppu_read_buffer.nes b/mynes-core/src/test/resources/ppu-read-buffer/test_ppu_read_buffer.nes similarity index 100% rename from src/test/resources/ppu-read-buffer/test_ppu_read_buffer.nes rename to mynes-core/src/test/resources/ppu-read-buffer/test_ppu_read_buffer.nes diff --git a/src/test/resources/ppu-sprite-hit/01-basics.nes b/mynes-core/src/test/resources/ppu-sprite-hit/01-basics.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/01-basics.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/01-basics.nes diff --git a/src/test/resources/ppu-sprite-hit/02-alignment.nes b/mynes-core/src/test/resources/ppu-sprite-hit/02-alignment.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/02-alignment.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/02-alignment.nes diff --git a/src/test/resources/ppu-sprite-hit/03-corners.nes b/mynes-core/src/test/resources/ppu-sprite-hit/03-corners.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/03-corners.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/03-corners.nes diff --git a/src/test/resources/ppu-sprite-hit/04-flip.nes b/mynes-core/src/test/resources/ppu-sprite-hit/04-flip.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/04-flip.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/04-flip.nes diff --git a/src/test/resources/ppu-sprite-hit/05-left_clip.nes b/mynes-core/src/test/resources/ppu-sprite-hit/05-left_clip.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/05-left_clip.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/05-left_clip.nes diff --git a/src/test/resources/ppu-sprite-hit/06-right_edge.nes b/mynes-core/src/test/resources/ppu-sprite-hit/06-right_edge.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/06-right_edge.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/06-right_edge.nes diff --git a/src/test/resources/ppu-sprite-hit/07-screen_bottom.nes b/mynes-core/src/test/resources/ppu-sprite-hit/07-screen_bottom.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/07-screen_bottom.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/07-screen_bottom.nes diff --git a/src/test/resources/ppu-sprite-hit/08-double_height.nes b/mynes-core/src/test/resources/ppu-sprite-hit/08-double_height.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/08-double_height.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/08-double_height.nes diff --git a/src/test/resources/ppu-sprite-hit/09-timing_basics.nes b/mynes-core/src/test/resources/ppu-sprite-hit/09-timing_basics.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/09-timing_basics.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/09-timing_basics.nes diff --git a/src/test/resources/ppu-sprite-hit/10-timing_order.nes b/mynes-core/src/test/resources/ppu-sprite-hit/10-timing_order.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/10-timing_order.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/10-timing_order.nes diff --git a/src/test/resources/ppu-sprite-hit/11-edge_timing.nes b/mynes-core/src/test/resources/ppu-sprite-hit/11-edge_timing.nes similarity index 100% rename from src/test/resources/ppu-sprite-hit/11-edge_timing.nes rename to mynes-core/src/test/resources/ppu-sprite-hit/11-edge_timing.nes diff --git a/src/test/resources/ppu-sprite-hit/readme.txt b/mynes-core/src/test/resources/ppu-sprite-hit/readme.txt similarity index 100% rename from src/test/resources/ppu-sprite-hit/readme.txt rename to mynes-core/src/test/resources/ppu-sprite-hit/readme.txt diff --git a/src/test/resources/ppu-sprite-overflow/01-basics.nes b/mynes-core/src/test/resources/ppu-sprite-overflow/01-basics.nes similarity index 100% rename from src/test/resources/ppu-sprite-overflow/01-basics.nes rename to mynes-core/src/test/resources/ppu-sprite-overflow/01-basics.nes diff --git a/src/test/resources/ppu-sprite-overflow/02-details.nes b/mynes-core/src/test/resources/ppu-sprite-overflow/02-details.nes similarity index 100% rename from src/test/resources/ppu-sprite-overflow/02-details.nes rename to mynes-core/src/test/resources/ppu-sprite-overflow/02-details.nes diff --git a/src/test/resources/ppu-sprite-overflow/03-timing.nes b/mynes-core/src/test/resources/ppu-sprite-overflow/03-timing.nes similarity index 100% rename from src/test/resources/ppu-sprite-overflow/03-timing.nes rename to mynes-core/src/test/resources/ppu-sprite-overflow/03-timing.nes diff --git a/src/test/resources/ppu-sprite-overflow/04-obscure.nes b/mynes-core/src/test/resources/ppu-sprite-overflow/04-obscure.nes similarity index 100% rename from src/test/resources/ppu-sprite-overflow/04-obscure.nes rename to mynes-core/src/test/resources/ppu-sprite-overflow/04-obscure.nes diff --git a/src/test/resources/ppu-sprite-overflow/05-emulator.nes b/mynes-core/src/test/resources/ppu-sprite-overflow/05-emulator.nes similarity index 100% rename from src/test/resources/ppu-sprite-overflow/05-emulator.nes rename to mynes-core/src/test/resources/ppu-sprite-overflow/05-emulator.nes diff --git a/src/test/resources/ppu-sprite-overflow/readme.txt b/mynes-core/src/test/resources/ppu-sprite-overflow/readme.txt similarity index 100% rename from src/test/resources/ppu-sprite-overflow/readme.txt rename to mynes-core/src/test/resources/ppu-sprite-overflow/readme.txt diff --git a/src/test/resources/ppu-tests-2005/palette_ram.nes b/mynes-core/src/test/resources/ppu-tests-2005/palette_ram.nes similarity index 100% rename from src/test/resources/ppu-tests-2005/palette_ram.nes rename to mynes-core/src/test/resources/ppu-tests-2005/palette_ram.nes diff --git a/src/test/resources/ppu-tests-2005/readme.txt b/mynes-core/src/test/resources/ppu-tests-2005/readme.txt similarity index 100% rename from src/test/resources/ppu-tests-2005/readme.txt rename to mynes-core/src/test/resources/ppu-tests-2005/readme.txt diff --git a/src/test/resources/ppu-tests-2005/sprite_ram.nes b/mynes-core/src/test/resources/ppu-tests-2005/sprite_ram.nes similarity index 100% rename from src/test/resources/ppu-tests-2005/sprite_ram.nes rename to mynes-core/src/test/resources/ppu-tests-2005/sprite_ram.nes diff --git a/src/test/resources/ppu-tests-2005/vbl_clear_time.nes b/mynes-core/src/test/resources/ppu-tests-2005/vbl_clear_time.nes similarity index 100% rename from src/test/resources/ppu-tests-2005/vbl_clear_time.nes rename to mynes-core/src/test/resources/ppu-tests-2005/vbl_clear_time.nes diff --git a/src/test/resources/ppu-tests-2005/vram_access.nes b/mynes-core/src/test/resources/ppu-tests-2005/vram_access.nes similarity index 100% rename from src/test/resources/ppu-tests-2005/vram_access.nes rename to mynes-core/src/test/resources/ppu-tests-2005/vram_access.nes diff --git a/src/test/resources/ppu-vbl-nmi/01-vbl_basics.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/01-vbl_basics.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/01-vbl_basics.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/01-vbl_basics.nes diff --git a/src/test/resources/ppu-vbl-nmi/02-vbl_set_time.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/02-vbl_set_time.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/02-vbl_set_time.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/02-vbl_set_time.nes diff --git a/src/test/resources/ppu-vbl-nmi/03-vbl_clear_time.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/03-vbl_clear_time.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/03-vbl_clear_time.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/03-vbl_clear_time.nes diff --git a/src/test/resources/ppu-vbl-nmi/04-nmi_control.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/04-nmi_control.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/04-nmi_control.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/04-nmi_control.nes diff --git a/src/test/resources/ppu-vbl-nmi/05-nmi_timing.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/05-nmi_timing.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/05-nmi_timing.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/05-nmi_timing.nes diff --git a/src/test/resources/ppu-vbl-nmi/06-suppression.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/06-suppression.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/06-suppression.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/06-suppression.nes diff --git a/src/test/resources/ppu-vbl-nmi/07-nmi_on_timing.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/07-nmi_on_timing.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/07-nmi_on_timing.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/07-nmi_on_timing.nes diff --git a/src/test/resources/ppu-vbl-nmi/08-nmi_off_timing.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/08-nmi_off_timing.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/08-nmi_off_timing.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/08-nmi_off_timing.nes diff --git a/src/test/resources/ppu-vbl-nmi/09-even_odd_frames.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/09-even_odd_frames.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/09-even_odd_frames.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/09-even_odd_frames.nes diff --git a/src/test/resources/ppu-vbl-nmi/10-even_odd_timing.nes b/mynes-core/src/test/resources/ppu-vbl-nmi/10-even_odd_timing.nes similarity index 100% rename from src/test/resources/ppu-vbl-nmi/10-even_odd_timing.nes rename to mynes-core/src/test/resources/ppu-vbl-nmi/10-even_odd_timing.nes diff --git a/src/test/resources/ppu-vbl-nmi/readme.txt b/mynes-core/src/test/resources/ppu-vbl-nmi/readme.txt similarity index 100% rename from src/test/resources/ppu-vbl-nmi/readme.txt rename to mynes-core/src/test/resources/ppu-vbl-nmi/readme.txt diff --git a/mynes-desktop/pom.xml b/mynes-desktop/pom.xml new file mode 100644 index 0000000..35ababa --- /dev/null +++ b/mynes-desktop/pom.xml @@ -0,0 +1,220 @@ + + + 4.0.0 + + + com.github.dimiro1 + mynes + 0.2.0 + + + mynes-desktop + jar + + mynes-desktop + The Swing window, and the Main that is the one way into either mode. + + + com.github.dimiro1.mynes.ui.Main + + + + + + + + com.github.dimiro1 + mynes-core + ${project.version} + + + + + com.github.dimiro1 + mynes-headless + ${project.version} + + + + com.formdev + flatlaf + + + com.miglayout + miglayout-swing + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + ${main.class} + + + + + + + + org.codehaus.mojo + exec-maven-plugin + + + false + + java + + + ${project.parent.basedir} + + + + --enable-native-access=ALL-UNNAMED + -classpath + + ${main.class} + + + + + headless + + + false + + + -classpath %classpath ${main.class} --headless ${mynes.args} + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + false + false + + + + make-assembly + package + + single + + + + jar-with-dependencies + + + + mynes + + + + ${main.class} + + + + + ALL-UNNAMED + + + + + + + + make-distribution + package + + single + + + + src/assembly/dist.xml + + + + mynes-${project.version} + + + + + + + diff --git a/src/assembly/dist.xml b/mynes-desktop/src/assembly/dist.xml similarity index 91% rename from src/assembly/dist.xml rename to mynes-desktop/src/assembly/dist.xml index d6e58d1..42e107e 100644 --- a/src/assembly/dist.xml +++ b/mynes-desktop/src/assembly/dist.xml @@ -55,9 +55,12 @@ dos - + - ${project.basedir} + ${project.parent.basedir} / README.md diff --git a/src/dist/mynes b/mynes-desktop/src/dist/mynes similarity index 100% rename from src/dist/mynes rename to mynes-desktop/src/dist/mynes diff --git a/src/dist/mynes.bat b/mynes-desktop/src/dist/mynes.bat similarity index 100% rename from src/dist/mynes.bat rename to mynes-desktop/src/dist/mynes.bat diff --git a/src/main/java/com/github/dimiro1/mynes/ui/AudioOutput.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/AudioOutput.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/AudioOutput.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/AudioOutput.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/Config.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/Config.java similarity index 99% rename from src/main/java/com/github/dimiro1/mynes/ui/Config.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/Config.java index 7796f69..a0da16a 100644 --- a/src/main/java/com/github/dimiro1/mynes/ui/Config.java +++ b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/Config.java @@ -2,8 +2,8 @@ import com.github.dimiro1.mynes.Region; import com.github.dimiro1.mynes.ui.input.KeyBindings; -import com.github.dimiro1.mynes.ui.palette.NESPalette; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.NESPalette; +import com.github.dimiro1.mynes.palette.Palettes; import java.io.IOException; import java.lang.System.Logger; diff --git a/src/main/java/com/github/dimiro1/mynes/ui/EmulationSpeed.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/EmulationSpeed.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/EmulationSpeed.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/EmulationSpeed.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/EmulatorRunner.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/EmulatorRunner.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/EmulatorRunner.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/EmulatorRunner.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/GameUIFrame.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/GameUIFrame.java similarity index 99% rename from src/main/java/com/github/dimiro1/mynes/ui/GameUIFrame.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/GameUIFrame.java index b800016..28c015b 100644 --- a/src/main/java/com/github/dimiro1/mynes/ui/GameUIFrame.java +++ b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/GameUIFrame.java @@ -12,7 +12,6 @@ import com.github.dimiro1.mynes.ui.debugger.DebuggerFrame; import com.github.dimiro1.mynes.ui.input.ControllerSettingsDialog; import com.github.dimiro1.mynes.ui.input.KeyboardInput; -import com.github.dimiro1.mynes.ui.palette.PaletteDialog; import javax.imageio.ImageIO; import javax.swing.*; diff --git a/src/main/java/com/github/dimiro1/mynes/ui/Main.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/Main.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/Main.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/Main.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/palette/PaletteDialog.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/PaletteDialog.java similarity index 97% rename from src/main/java/com/github/dimiro1/mynes/ui/palette/PaletteDialog.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/PaletteDialog.java index 9575f7d..4452ff5 100644 --- a/src/main/java/com/github/dimiro1/mynes/ui/palette/PaletteDialog.java +++ b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/PaletteDialog.java @@ -1,4 +1,7 @@ -package com.github.dimiro1.mynes.ui.palette; +package com.github.dimiro1.mynes.ui; + +import com.github.dimiro1.mynes.palette.NESPalette; +import com.github.dimiro1.mynes.palette.Palettes; import net.miginfocom.swing.MigLayout; diff --git a/src/main/java/com/github/dimiro1/mynes/ui/RegionSetting.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/RegionSetting.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/RegionSetting.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/RegionSetting.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/ScreenComponent.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/ScreenComponent.java similarity index 98% rename from src/main/java/com/github/dimiro1/mynes/ui/ScreenComponent.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/ScreenComponent.java index c79b7d0..0241422 100644 --- a/src/main/java/com/github/dimiro1/mynes/ui/ScreenComponent.java +++ b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/ScreenComponent.java @@ -1,8 +1,8 @@ package com.github.dimiro1.mynes.ui; import com.github.dimiro1.mynes.PPU; -import com.github.dimiro1.mynes.ui.palette.NESPalette; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.NESPalette; +import com.github.dimiro1.mynes.palette.Palettes; import com.github.dimiro1.mynes.video.FrameRenderer; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/com/github/dimiro1/mynes/ui/ScreenScale.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/ScreenScale.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/ScreenScale.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/ScreenScale.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/Screenshots.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/Screenshots.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/Screenshots.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/Screenshots.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/CHRViewerFrame.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/CHRViewerFrame.java similarity index 99% rename from src/main/java/com/github/dimiro1/mynes/ui/chrviewer/CHRViewerFrame.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/CHRViewerFrame.java index 2b13fe7..d0fc7c7 100644 --- a/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/CHRViewerFrame.java +++ b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/CHRViewerFrame.java @@ -2,7 +2,7 @@ import com.github.dimiro1.mynes.Cart; import com.github.dimiro1.mynes.PPU; -import com.github.dimiro1.mynes.ui.palette.NESPalette; +import com.github.dimiro1.mynes.palette.NESPalette; import net.miginfocom.swing.MigLayout; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/TileComponent.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/TileComponent.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/chrviewer/TileComponent.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/TileComponent.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/TilesViewerPanel.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/TilesViewerPanel.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/chrviewer/TilesViewerPanel.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/chrviewer/TilesViewerPanel.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/debugger/DebuggerFrame.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/DebuggerFrame.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/debugger/DebuggerFrame.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/DebuggerFrame.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/debugger/DisassemblyPanel.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/DisassemblyPanel.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/debugger/DisassemblyPanel.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/DisassemblyPanel.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/debugger/MachineSnapshot.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/MachineSnapshot.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/debugger/MachineSnapshot.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/MachineSnapshot.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/debugger/MemoryPanel.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/MemoryPanel.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/debugger/MemoryPanel.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/MemoryPanel.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/debugger/PointsPanel.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/PointsPanel.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/debugger/PointsPanel.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/PointsPanel.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/debugger/RegistersPanel.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/RegistersPanel.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/debugger/RegistersPanel.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/debugger/RegistersPanel.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/input/ControllerSettingsDialog.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/input/ControllerSettingsDialog.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/input/ControllerSettingsDialog.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/input/ControllerSettingsDialog.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/input/KeyBindings.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/input/KeyBindings.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/input/KeyBindings.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/input/KeyBindings.java diff --git a/src/main/java/com/github/dimiro1/mynes/ui/input/KeyboardInput.java b/mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/input/KeyboardInput.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/ui/input/KeyboardInput.java rename to mynes-desktop/src/main/java/com/github/dimiro1/mynes/ui/input/KeyboardInput.java diff --git a/src/test/java/com/github/dimiro1/mynes/ui/ConfigTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ConfigTests.java similarity index 99% rename from src/test/java/com/github/dimiro1/mynes/ui/ConfigTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ConfigTests.java index 6175d9b..7061801 100644 --- a/src/test/java/com/github/dimiro1/mynes/ui/ConfigTests.java +++ b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ConfigTests.java @@ -3,8 +3,8 @@ import com.github.dimiro1.mynes.Region; import com.github.dimiro1.mynes.ui.input.KeyBindings; import com.github.dimiro1.mynes.ui.input.KeyBindings.Button; -import com.github.dimiro1.mynes.ui.palette.NESPalette; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.NESPalette; +import com.github.dimiro1.mynes.palette.Palettes; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/github/dimiro1/mynes/ui/EmulationSpeedTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/EmulationSpeedTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ui/EmulationSpeedTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/EmulationSpeedTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ui/EmulatorRunnerTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/EmulatorRunnerTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ui/EmulatorRunnerTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/EmulatorRunnerTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ui/ScreenComponentTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ScreenComponentTests.java similarity index 99% rename from src/test/java/com/github/dimiro1/mynes/ui/ScreenComponentTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ScreenComponentTests.java index a8fc7ee..9695e85 100644 --- a/src/test/java/com/github/dimiro1/mynes/ui/ScreenComponentTests.java +++ b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ScreenComponentTests.java @@ -1,7 +1,7 @@ package com.github.dimiro1.mynes.ui; import com.github.dimiro1.mynes.PPU; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.Palettes; import com.github.dimiro1.mynes.video.FrameRenderer; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/github/dimiro1/mynes/ui/ScreenScaleTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ScreenScaleTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ui/ScreenScaleTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ScreenScaleTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ui/ScreenshotsTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ScreenshotsTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ui/ScreenshotsTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/ScreenshotsTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ui/debugger/DebuggerFrameTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/debugger/DebuggerFrameTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ui/debugger/DebuggerFrameTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/debugger/DebuggerFrameTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ui/debugger/MachineSnapshotTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/debugger/MachineSnapshotTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ui/debugger/MachineSnapshotTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/debugger/MachineSnapshotTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/ui/input/KeyBindingsTests.java b/mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/input/KeyBindingsTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/ui/input/KeyBindingsTests.java rename to mynes-desktop/src/test/java/com/github/dimiro1/mynes/ui/input/KeyBindingsTests.java diff --git a/mynes-headless/pom.xml b/mynes-headless/pom.xml new file mode 100644 index 0000000..624f14b --- /dev/null +++ b/mynes-headless/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + + com.github.dimiro1 + mynes + 0.2.0 + + + mynes-headless + jar + + mynes-headless + Running a cartridge with nobody watching: the command line, the REPL, the report. + + + + com.github.dimiro1 + mynes-core + ${project.version} + + + + + com.fasterxml.jackson.core + jackson-databind + test + + + diff --git a/src/main/java/com/github/dimiro1/mynes/headless/Headless.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Headless.java similarity index 99% rename from src/main/java/com/github/dimiro1/mynes/headless/Headless.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Headless.java index 5e5989e..e851d3e 100644 --- a/src/main/java/com/github/dimiro1/mynes/headless/Headless.java +++ b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Headless.java @@ -4,7 +4,7 @@ import com.github.dimiro1.mynes.NES; import com.github.dimiro1.mynes.state.BatteryRAM; import com.github.dimiro1.mynes.state.SaveStateException; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.Palettes; import java.io.BufferedReader; import java.io.IOException; diff --git a/src/main/java/com/github/dimiro1/mynes/headless/InputSchedule.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/InputSchedule.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/headless/InputSchedule.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/InputSchedule.java diff --git a/src/main/java/com/github/dimiro1/mynes/headless/Json.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Json.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/headless/Json.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Json.java diff --git a/src/main/java/com/github/dimiro1/mynes/headless/Options.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Options.java similarity index 99% rename from src/main/java/com/github/dimiro1/mynes/headless/Options.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Options.java index 4cf6848..b32092f 100644 --- a/src/main/java/com/github/dimiro1/mynes/headless/Options.java +++ b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Options.java @@ -2,8 +2,8 @@ import com.github.dimiro1.mynes.Cart; import com.github.dimiro1.mynes.Region; -import com.github.dimiro1.mynes.ui.palette.NESPalette; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.NESPalette; +import com.github.dimiro1.mynes.palette.Palettes; import com.github.dimiro1.mynes.video.FrameRenderer; import java.io.IOException; diff --git a/src/main/java/com/github/dimiro1/mynes/headless/Repl.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Repl.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/headless/Repl.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Repl.java diff --git a/src/main/java/com/github/dimiro1/mynes/headless/Report.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Report.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/headless/Report.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Report.java diff --git a/src/main/java/com/github/dimiro1/mynes/headless/Session.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Session.java similarity index 96% rename from src/main/java/com/github/dimiro1/mynes/headless/Session.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Session.java index 8f386d4..3b5b913 100644 --- a/src/main/java/com/github/dimiro1/mynes/headless/Session.java +++ b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/Session.java @@ -19,12 +19,14 @@ * interactive mode takes commands against it, but neither of them knows how to clock a NES or what * a frame hash is, and this does not know which of the two is driving. *

- * The frame loop is deliberately the same shape as the one in - * {@link com.github.dimiro1.mynes.ui.EmulatorRunner}, down to using the PPU's frame counter as the - * only frame-complete signal. What is missing from it is the whole point: no pacing, because there - * is no display to keep in step with; no {@link com.github.dimiro1.mynes.ui.AudioOutput}, because - * opening a sound card would make the run depend on the computer it ran on; and no - * {@link com.github.dimiro1.mynes.ui.ScreenComponent}, because nobody is watching. + * The frame loop is deliberately the same shape as the one in the window's {@code EmulatorRunner}, + * down to using the PPU's frame counter as the only frame-complete signal. What is missing from it + * is the whole point: no pacing, because there is no display to keep in step with; no + * {@code AudioOutput}, because opening a sound card would make the run depend on the computer it + * ran on; and no {@code ScreenComponent}, because nobody is watching. + *

+ * Named rather than linked, those three: they live in {@code mynes-desktop}, which this module does + * not depend on and cannot resolve a link into. */ public final class Session { /** diff --git a/src/main/java/com/github/dimiro1/mynes/headless/UsageException.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/UsageException.java similarity index 100% rename from src/main/java/com/github/dimiro1/mynes/headless/UsageException.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/UsageException.java diff --git a/src/main/java/com/github/dimiro1/mynes/headless/WavWriter.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/WavWriter.java similarity index 97% rename from src/main/java/com/github/dimiro1/mynes/headless/WavWriter.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/WavWriter.java index 364d2be..3149149 100644 --- a/src/main/java/com/github/dimiro1/mynes/headless/WavWriter.java +++ b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/WavWriter.java @@ -13,8 +13,8 @@ * Streaming rather than collecting, because the amount of sound a run makes is decided by how long * the run is: a second of it is 88 kilobytes, so an hour would be three hundred megabytes of heap * held for no reason other than that nobody had written it down yet. The only thing kept in memory - * is the byte buffer the samples are turned into, reused between calls -- the same trade - * {@link com.github.dimiro1.mynes.ui.AudioOutput} makes on its way to the sound card. + * is the byte buffer the samples are turned into, reused between calls -- the same trade the + * window's {@code AudioOutput} makes on its way to the sound card. *

* A RIFF header has to say how long the sound is, and nothing knows that until the run ends, so the * two lengths go down as zeroes and are patched in {@link #close()}. That is why this writes to a diff --git a/src/main/java/com/github/dimiro1/mynes/headless/package-info.java b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/package-info.java similarity index 71% rename from src/main/java/com/github/dimiro1/mynes/headless/package-info.java rename to mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/package-info.java index a4257b7..ddd7220 100644 --- a/src/main/java/com/github/dimiro1/mynes/headless/package-info.java +++ b/mynes-headless/src/main/java/com/github/dimiro1/mynes/headless/package-info.java @@ -16,11 +16,15 @@ * com.github.dimiro1.mynes.headless.Repl} is there for the times when the question is not yet known * well enough to write down. *

- * Nothing here touches {@code mynes.ui}, except its palettes. Three separate things over - * there would make a run depend on the computer it ran on: the look and feel loads a native - * library, {@link com.github.dimiro1.mynes.ui.AudioOutput} opens a mixer, and - * {@link com.github.dimiro1.mynes.ui.Config} reads whatever is in the user's home directory. A + * Nothing here touches {@code mynes.ui}, and nothing here can: this is a module of its own, + * and {@code mynes-desktop} is not on its class path. Three separate things over there would make a + * run depend on the computer it ran on: the look and feel loads a native library, {@code + * AudioOutput} opens a mixer, and {@code Config} reads whatever is in the user's home directory. A * headless run reads none of them -- in particular it never reads the config file, so a palette * chosen in the menus cannot quietly change what a screenshot looks like. + *

+ * The palettes themselves used to be the one exception to that sentence. They are in + * {@link com.github.dimiro1.mynes.palette} now, which is in the core, so there is no exception left + * to make. */ package com.github.dimiro1.mynes.headless; diff --git a/src/test/java/com/github/dimiro1/mynes/headless/HeadlessRunTests.java b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/HeadlessRunTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/headless/HeadlessRunTests.java rename to mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/HeadlessRunTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/headless/InputPathTests.java b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/InputPathTests.java similarity index 99% rename from src/test/java/com/github/dimiro1/mynes/headless/InputPathTests.java rename to mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/InputPathTests.java index 9a26979..a348e3c 100644 --- a/src/test/java/com/github/dimiro1/mynes/headless/InputPathTests.java +++ b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/InputPathTests.java @@ -3,7 +3,7 @@ import com.github.dimiro1.mynes.Cart; import com.github.dimiro1.mynes.Controller; import com.github.dimiro1.mynes.NES; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.Palettes; import org.junit.jupiter.api.Test; import java.io.IOException; diff --git a/src/test/java/com/github/dimiro1/mynes/headless/InputScheduleTests.java b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/InputScheduleTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/headless/InputScheduleTests.java rename to mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/InputScheduleTests.java diff --git a/src/test/java/com/github/dimiro1/mynes/headless/OptionsTests.java b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/OptionsTests.java similarity index 99% rename from src/test/java/com/github/dimiro1/mynes/headless/OptionsTests.java rename to mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/OptionsTests.java index 3616d26..91cf7f3 100644 --- a/src/test/java/com/github/dimiro1/mynes/headless/OptionsTests.java +++ b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/OptionsTests.java @@ -1,7 +1,7 @@ package com.github.dimiro1.mynes.headless; import com.github.dimiro1.mynes.Region; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.Palettes; import org.junit.jupiter.api.Test; import java.nio.file.Path; diff --git a/src/test/java/com/github/dimiro1/mynes/headless/ReplTests.java b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/ReplTests.java similarity index 99% rename from src/test/java/com/github/dimiro1/mynes/headless/ReplTests.java rename to mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/ReplTests.java index d94108c..08e3032 100644 --- a/src/test/java/com/github/dimiro1/mynes/headless/ReplTests.java +++ b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/ReplTests.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.github.dimiro1.mynes.Cart; import com.github.dimiro1.mynes.NES; -import com.github.dimiro1.mynes.ui.palette.Palettes; +import com.github.dimiro1.mynes.palette.Palettes; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; diff --git a/src/test/java/com/github/dimiro1/mynes/headless/WavWriterTests.java b/mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/WavWriterTests.java similarity index 100% rename from src/test/java/com/github/dimiro1/mynes/headless/WavWriterTests.java rename to mynes-headless/src/test/java/com/github/dimiro1/mynes/headless/WavWriterTests.java diff --git a/mynes-headless/src/test/resources/PROVENANCE b/mynes-headless/src/test/resources/PROVENANCE new file mode 100644 index 0000000..a3f2127 --- /dev/null +++ b/mynes-headless/src/test/resources/PROVENANCE @@ -0,0 +1,15 @@ +Two cartridges, copied from mynes-core/src/test/resources, where the originals live alongside the +readmes and expected-output logs that came with them. + +They are here rather than reached for across the module boundary because of what these tests do +with them. Everything in the core reads a ROM off the classpath; the headless mode takes a --rom +and opens it, so its tests have to hand it a path on disk. Surefire runs with the working directory +set to the module, which makes src/test/resources/nestest/nestest.nes mean this copy -- the same +string the core's tests use for theirs. + +The alternative is a test-jar from the core and a helper that unpacks a resource into a temporary +directory before every run. Sixty-five kilobytes of cartridge that has not changed since 2005 is +cheaper than that, and honest about being a copy. + + nestest/nestest.nes Kevtris, 2005. Draws its menu unprompted, which most games do not. + mmc3-test-2/1-clocking.nes blargg. Mapper 4, so the report has a mapper with banking in it. diff --git a/mynes-headless/src/test/resources/mmc3-test-2/1-clocking.nes b/mynes-headless/src/test/resources/mmc3-test-2/1-clocking.nes new file mode 100644 index 0000000..4458d56 Binary files /dev/null and b/mynes-headless/src/test/resources/mmc3-test-2/1-clocking.nes differ diff --git a/mynes-headless/src/test/resources/nestest/nestest.nes b/mynes-headless/src/test/resources/nestest/nestest.nes new file mode 100644 index 0000000..fc2a88c Binary files /dev/null and b/mynes-headless/src/test/resources/nestest/nestest.nes differ diff --git a/pom.xml b/pom.xml index a0fbdf7..6ff8567 100644 --- a/pom.xml +++ b/pom.xml @@ -7,16 +7,24 @@ com.github.dimiro1 mynes 0.2.0 - jar + pom mynes mynes + + + mynes-core + mynes-headless + mynes-desktop + + UTF-8 25 25 - com.github.dimiro1.mynes.ui.Main 2026-08-14T00:00:00Z - - + 3.7.2 + 11.4.3 + 26.1.0 + 2.22.1 + 6.1.3 + - - - com.formdev - flatlaf - 3.7.2 - - - com.miglayout - miglayout-swing - 11.4.3 - - + would be carrying a dependency it can never call. + + Provided scope does not travel between modules either, which is the other reason it is + here rather than in one of them: each module compiles against its own copy. --> org.jetbrains annotations - 26.1.0 + ${annotations.version} provided - - - - - com.fasterxml.jackson.core - jackson-databind - 2.22.1 - test - - org.junit.jupiter junit-jupiter-api - 6.1.3 + ${junit.version} test org.junit.jupiter junit-jupiter-params - 6.1.3 + ${junit.version} test org.junit.jupiter junit-jupiter-engine - 6.1.3 + ${junit.version} test + + + + com.formdev + flatlaf + ${flatlaf.version} + + + com.miglayout + miglayout-swing + ${miglayout.version} + + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.15.0 + + 25 + 25 + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.6 + + + + org.apache.maven.plugins + maven-jar-plugin + 3.5.1 + + + + + org.codehaus.mojo + exec-maven-plugin + 3.5.1 + + true + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.8.0 + + + + - org.apache.maven.plugins maven-compiler-plugin - 3.15.0 - - 25 - 25 - - - org.apache.maven.plugins maven-surefire-plugin - 3.5.6 - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.5.1 - - - - ${main.class} - - - - + The empty execution matters as much as the plugin does. `exec:exec@headless` picks + an execution by id, and on a project that has no execution of that name it runs + with an empty configuration rather than with the plugin's, skip included. So the id + has to exist everywhere the command might land, doing nothing. --> org.codehaus.mojo exec-maven-plugin - 3.5.1 - - java - - - --enable-native-access=ALL-UNNAMED - -classpath - - ${main.class} - - - - - headless - - - -classpath %classpath ${main.class} --headless ${mynes.args} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.8.0 + The executable is named as well as skipped, and both are needed. It is a + required parameter, so Maven refuses the goal while injecting it, before the + mojo has run far enough to notice it was told to skip; naming something real + gets it past that, and the skip then makes it do nothing. `java` because the + build is already running on one. --> - - false - false + true + java - - - make-assembly - package - - single - - - - jar-with-dependencies - - - - mynes - - - - ${main.class} - - - - - ALL-UNNAMED - - - - - + - make-distribution - package - - single - + headless - - src/assembly/dist.xml - + true + java diff --git a/scripts/download-6502-tests.sh b/scripts/download-6502-tests.sh index 07d2130..9a42c6a 100755 --- a/scripts/download-6502-tests.sh +++ b/scripts/download-6502-tests.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash # -# Downloads the full Tom Harte SingleStepTests "nes6502/v1" set into testdata/. +# Downloads the full Tom Harte SingleStepTests "nes6502/v1" set into +# mynes-core/testdata/. # # Source: https://github.com/SingleStepTests/65x02 (the canonical home of the # 65x02 family sets; also mirrored under SingleStepTests/ProcessorTests). @@ -9,9 +10,16 @@ # fetches it on demand into a gitignored directory. # # The set is 256 files (one per opcode), 10,000 cases each, ~1.4 GB total. A -# 500-case-per-opcode subset lives in src/test/resources/harte/nes6502 and is -# what plain `mvn test` uses; the test harness automatically prefers the full -# set when this script has populated testdata/nes6502/v1. +# 500-case-per-opcode subset lives in mynes-core/src/test/resources/harte/nes6502 +# and is what plain `mvn test` uses; the test harness automatically prefers the +# full set when this script has populated mynes-core/testdata/nes6502/v1. +# +# Inside the module rather than at the root of the checkout, because that is +# where HarteCaseLoader looks: it resolves a relative path, and Surefire runs +# with the working directory set to the module being tested. Getting this wrong +# is quiet rather than loud -- the loader simply falls back to the committed +# subset -- so it is worth knowing that this path and that one are the same +# decision written down twice. # # Idempotent: re-running is a no-op once the pinned commit is already unpacked. # @@ -25,9 +33,9 @@ PINNED_SHA="2f6980a2d95757486c7bee24355c360e40e2a224" EXPECTED_FILES=256 ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -DEST_DIR="$ROOT_DIR/testdata/nes6502/v1" -MARKER="$ROOT_DIR/testdata/nes6502/.commit" -WORK_DIR="$ROOT_DIR/testdata/.65x02-checkout" +DEST_DIR="$ROOT_DIR/mynes-core/testdata/nes6502/v1" +MARKER="$ROOT_DIR/mynes-core/testdata/nes6502/.commit" +WORK_DIR="$ROOT_DIR/mynes-core/testdata/.65x02-checkout" count_json() { if [ -d "$DEST_DIR" ]; then diff --git a/scripts/download-palettes.sh b/scripts/download-palettes.sh index 1358d1c..c322dce 100755 --- a/scripts/download-palettes.sh +++ b/scripts/download-palettes.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Fetches the palettes MyNES draws with into src/main/resources/palettes. +# Fetches the palettes MyNES draws with into mynes-core/src/main/resources/palettes. # # Source: https://www.firebrandx.com/nespalette.html (the standalone zips) and # https://www.firebrandx.com/downloads/Novemeber-2017-Palettes.zip (the bundle -- @@ -35,7 +35,7 @@ PAL_BYTES=1536 PAL_SHA1="3955a5f2685e94bda1a539e39fd98d468fe0e56e" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -DEST_DIR="$ROOT_DIR/src/main/resources/palettes" +DEST_DIR="$ROOT_DIR/mynes-core/src/main/resources/palettes" WORK_DIR="$(mktemp -d)" trap 'rm -rf "$WORK_DIR"' EXIT diff --git a/scripts/sample-6502-tests.sh b/scripts/sample-6502-tests.sh index 2c37b60..a7812fb 100755 --- a/scripts/sample-6502-tests.sh +++ b/scripts/sample-6502-tests.sh @@ -2,9 +2,10 @@ # # Builds the committed subset of the Tom Harte nes6502/v1 test set. # -# Takes the first N cases of each of the 256 opcode files from the full set in testdata/ -# (see download-6502-tests.sh) and writes them gzipped into src/test/resources, so that a -# plain `mvn test` still exercises every opcode without a network fetch. The harness prefers +# Takes the first N cases of each of the 256 opcode files from the full set in +# mynes-core/testdata/ (see download-6502-tests.sh) and writes them gzipped into that module's +# test resources, so that a plain `mvn test` still exercises every opcode without a network +# fetch. The harness prefers # the full set whenever it is present, so this only has to be re-run when bumping the pinned # upstream commit or the sample size. # @@ -13,9 +14,9 @@ set -euo pipefail SAMPLE_SIZE="${SAMPLE_SIZE:-500}" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -SRC_DIR="$ROOT_DIR/testdata/nes6502/v1" -DEST_DIR="$ROOT_DIR/src/test/resources/harte/nes6502" -MARKER="$ROOT_DIR/testdata/nes6502/.commit" +SRC_DIR="$ROOT_DIR/mynes-core/testdata/nes6502/v1" +DEST_DIR="$ROOT_DIR/mynes-core/src/test/resources/harte/nes6502" +MARKER="$ROOT_DIR/mynes-core/testdata/nes6502/.commit" if [ ! -d "$SRC_DIR" ]; then echo "$SRC_DIR is missing -- run scripts/download-6502-tests.sh first." >&2 diff --git a/scripts/smoke-distribution.sh b/scripts/smoke-distribution.sh index 1f414ef..8b7da0e 100755 --- a/scripts/smoke-distribution.sh +++ b/scripts/smoke-distribution.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Unpacks target/mynes-*.zip somewhere temporary and runs the emulator out of it, the way somebody +# Unpacks mynes-desktop/target/mynes-*.zip somewhere temporary and runs the emulator out of it, the way somebody # who downloaded it from the releases page would. Run it after `mvn -B package -DskipTests`. Both # workflows call this rather than spelling it out, so there is one copy of the check to keep right. # @@ -16,7 +16,7 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # Committed, so this needs no network and no ROM of anybody's own. nestest draws its menu unprompted, # which most cartridges do not: Super Mario Bros. and Tetris would sit on a title screen here and # pass just as well without ever having run a frame of anything. -ROM="$ROOT_DIR/src/test/resources/nestest/nestest.nes" +ROM="$ROOT_DIR/mynes-core/src/test/resources/nestest/nestest.nes" FRAMES=60 # Palettes.NESDEV is compiled in; the other eleven are read out of /palettes inside the jar. @@ -27,11 +27,11 @@ WORK_DIR="$(mktemp -d)" trap 'rm -rf "$WORK_DIR"' EXIT shopt -s nullglob -zips=("$ROOT_DIR"/target/mynes-*.zip) +zips=("$ROOT_DIR"/mynes-desktop/target/mynes-*.zip) shopt -u nullglob if [ ${#zips[@]} -ne 1 ]; then - echo "expected one target/mynes-*.zip and found ${#zips[@]}; run mvn package first." >&2 + echo "expected one mynes-desktop/target/mynes-*.zip and found ${#zips[@]}; run mvn package first." >&2 exit 1 fi