Commit Graph

178 Commits

Author SHA1 Message Date
SergioMartin86 45840b6527 Putting controller into its own namespace 2024-03-19 19:47:30 +01:00
SergioMartin86 b67a94263e Small improvements in deserialization 2024-03-11 19:47:41 +01:00
SergioMartin86 8bdfd4fa2a Updating jaffarCommon subproect 2024-03-06 16:21:04 +01:00
SergioMartin86 f70db77e69 Re-adding support for traceback 2024-02-26 19:04:05 +00:00
SergioMartin86 5170f5e983 Adding read function for joy read count 2024-02-26 18:50:38 +00:00
SergioMartin86 c790c0df18 Bringing back joypad read count for lag frame detection 2024-02-26 18:45:31 +00:00
SergioMartin86 3b041974d8 Abandoning support for quicknes savestates due to its unability to establish the correct state size from the beginning with games like Castlevania 3. Removing headers also 2024-02-24 18:35:47 +00:00
SergioMartin86 c07130414f Fixing mistake with submodule 2024-02-24 17:00:44 +00:00
SergioMartin86 5e57aa0e6b Fixing a bug in the original ppu serialization where the size of the NTAB would change after a few frames. Now Castlavania III works 2024-02-24 16:43:33 +00:00
SergioMartin86 1b5472184d Resolving extern function 2024-02-24 07:37:49 +00:00
SergioMartin86 ba38f85b03 Creating new accessors 2024-02-24 06:58:23 +00:00
SergioMartin86 4844904217 Creating new accessors 2024-02-24 06:57:23 +00:00
SergioMartin86 557ef1224b Removing flag for alignment -- fixed at 1024 now 2024-02-24 06:49:33 +00:00
SergioMartin86 129e5e130b Making apus independently named 2024-02-24 06:46:11 +00:00
SergioMartin86 d487148444 Storing base pixels ptr for freeing later 2024-02-24 06:37:09 +00:00
SergioMartin86 32a8ea42f8 Changing define to avoid possible name conflicts 2024-02-17 07:00:18 +00:00
Sergio Martin 944046a78a Using encapsulated serializators now 2024-02-09 20:43:42 +01:00
Sergio Martin 877d7a4052 Simplifying serialize head 2024-02-09 17:58:19 +01:00
Sergio Martin e7b1a5315b Added options not to compile the quickNES core 2024-02-08 19:53:29 +01:00
Sergio Martin 318e1822bd Fixing build in jaffarPlus 2024-02-08 19:31:18 +01:00
Sergio Martin 9bede7a2e8 Using common set of tools 2024-02-08 19:19:39 +01:00
Sergio Martin 633173ba4d Differential compression requires passing relative positions for differential and reference data 2024-02-08 07:44:08 +01:00
Sergio Martin 4e0a6c038c Progress with serialization 2024-02-06 20:05:14 +01:00
Sergio Martin 94681844f2 Progress with deserialization 2024-02-06 19:50:07 +01:00
Sergio Martin 9c5b498cc3 Fixed tests passing 2024-02-06 19:34:49 +01:00
Sergio Martin d7451c91b2 Simplifying serialization 2024-02-06 19:25:57 +01:00
Sergio Martin b9ee75970b Progress with serialization 2024-02-06 19:15:57 +01:00
Sergio Martin d04907f3c7 Progress with serialization 2024-02-06 19:12:04 +01:00
Sergio Martin bd737267ae Using exceptions 2024-02-06 18:38:15 +01:00
Sergio Martin 393e51ebcb Progress with serialization 2024-02-06 18:25:29 +01:00
Sergio Martin 0947327fe0 Progress with differential compression 2024-02-06 17:54:39 +01:00
Sergio Martin 3e60608ad5 Adding memory access functions 2024-01-30 17:04:18 +01:00
Sergio Martin 9209d17d48 Getting memory pointer is a const now 2024-01-29 19:47:52 +01:00
Sergio Martin beaa6bfd25 Making macros include-safe 2024-01-29 17:04:29 +01:00
Sergio Martin 2d17b39772 Fixing relative includes 2024-01-29 16:54:27 +01:00
Sergio Martin 280655e53c More simplfiication 2024-01-28 19:57:38 +01:00
Sergio Martin 2a7dfdc74a More simplfiication 2024-01-28 19:57:24 +01:00
Sergio Martin b07f5521af Making all includes relative 2024-01-28 18:19:23 +01:00
Sergio Martin b1fbe9ddc5 Refactoring for better use in JaffarPlus 2024-01-28 16:03:02 +01:00
Sergio Martin 5d047f3904 Taking back changes on controllers as joypad do report 1s after the first 8 bits as per https://www.nesdev.org/wiki/Standard_controller 2024-01-27 21:14:21 +01:00
Sergio Martin 5af4dcbd6a Removed all-ones signatures at the end of controller latch phase for normal joypads 2024-01-27 20:22:50 +01:00
Sergio Martin a2c541b5a0 Simplifying light state logic, adding header block, adapting tests 2024-01-27 20:02:05 +01:00
Sergio Martin 4040672b0b Fixing tests 2024-01-25 07:15:48 +01:00
Sergio Martin 7164094e95 More simplifications 2024-01-22 19:30:14 +01:00
Sergio Martin 9802883fee Homogenizing format 2024-01-22 18:50:52 +01:00
Sergio Martin 69b6ebc445 Homogeneizing folder structure 2024-01-22 17:54:41 +01:00
Sergio Martin 301d98af5b Small fix in the full deserialization routine 2024-01-22 17:01:33 +01:00
Sergio Martin 86470e378c Optimizations to control reading 2024-01-21 19:22:28 +01:00
Sergio Martin 6b2b52eae6 Added support for FourScore and added test for rcProAmII 2024-01-21 16:35:02 +01:00
Sergio Martin dae6c91a5a Fixing screen update bug 2024-01-21 15:57:35 +01:00
Sergio Martin fab1b2b0bf Adding configurable controller and proam2 test 2024-01-21 15:34:15 +01:00
Sergio Martin 992ac1ea2c Added ignored blocks in the light state 2024-01-20 20:16:54 +01:00
Sergio Martin 3b4a530d42 Adding block discrimination mechanism for light states 2024-01-20 18:30:24 +01:00
Sergio Martin e376b69d84 Fixing performance degrading problem 2024-01-20 17:00:24 +01:00
Sergio Martin 0afe500701 Adding configurable light states 2024-01-20 16:48:38 +01:00
Sergio Martin 9eccd5084b Shaving bytes off the lite state 2024-01-20 15:45:49 +01:00
Sergio Martin 5a99f2749a Differentiating full & lite state classes 2024-01-20 15:26:14 +01:00
Sergio Martin b7788f946b Renaming 2024-01-20 13:02:14 +01:00
Sergio Martin d1993751f6 added namespaces 2024-01-20 12:33:31 +01:00
Sergio Martin d8513ef867 Restyling 2024-01-20 11:21:34 +01:00
Sergio Martin dec1772b7e Standarizing header file extensions 2024-01-20 11:15:24 +01:00
Sergio Martin 74e6ab9286 Changes to the CPU 2024-01-20 07:09:31 +01:00
Sergio Martin 094ab435db More refactoring 2024-01-19 21:24:50 +01:00
Sergio Martin b970262005 refactoring and small tweaks in cpu 2024-01-19 21:14:18 +01:00
Sergio Martin 58bc38688e More refactoring 2024-01-19 20:27:00 +01:00
Sergio Martin 99d32a4301 Modernizing 2024-01-19 19:55:54 +01:00
Sergio Martin 9d941ede99 More simplifications 2024-01-19 19:46:45 +01:00
Sergio Martin d7f6144209 More optimizations and simplifications 2024-01-19 19:36:33 +01:00
Sergio Martin 8230715934 More simplifications 2024-01-19 18:52:22 +01:00
Sergio Martin f7cd3834a7 Simplifying/modernizing 2024-01-19 18:44:28 +01:00
Sergio Martin 823bc9ad1c Putting all audio code in one folder 2024-01-19 17:42:29 +01:00
Sergio Martin ae2f61d029 Simplifications 2024-01-19 17:21:04 +01:00
Sergio Martin 131aa5bb97 Simplications in source, removing no longer needed files and simplifying tests 2024-01-19 17:03:47 +01:00
Sergio Martin 4530713b01 Created new functions for serialization and deserialization 2024-01-18 19:56:30 +01:00
Sergio Martin 17bb8c99d8 Adding smb3 for mapper 37 (4 nametable bank) testing 2024-01-17 20:28:32 +01:00
Sergio Martin f6d119b549 Adding saiyuuki world 2024-01-17 18:21:44 +01:00
Sergio Martin e09e0a745d Extending full cycle testing to an extra advance 2024-01-17 16:38:22 +01:00
Sergio Martin 4afe5e9f02 Fixing pop1 test 2024-01-17 08:15:32 +01:00
Sergio Martin e0973cd946 Allocating state in the heap 2024-01-17 07:09:34 +01:00
Sergio Martin a07839e5af Fixed stack overflow issue 2024-01-17 06:59:10 +01:00
Sergio Martin 2eee66cda8 Fixes 2024-01-16 22:39:18 +01:00
Sergio Martin 28c1be6fe7 Improving tests to include save/load full cycles and direct comparison against quicknes 2024-01-16 22:22:36 +01:00
Sergio Martin 82368f4a27 more simplifications 2024-01-16 18:49:46 +01:00
Sergio Martin eb5edf12e5 Some refactoring 2024-01-16 18:42:29 +01:00
Sergio Martin 92ad30faf8 Adding notice to CPU 2024-01-15 22:24:50 +01:00
Sergio Martin 4740e7d7cf Fixed player and some optimizations in the cpu 2024-01-15 22:19:29 +01:00
Sergio Martin a254482102 Creating emulator interface class to mix both versions. This will be useful for verification purposes. Also fixed mapper070 for quicknes 2024-01-15 20:56:58 +01:00
Sergio Martin ad9858a564 Adding no frills memcpy-based ines loader 2024-01-14 19:28:40 +01:00
Sergio Martin 5624f29ee6 Changing alignment value to 1K, which seems sufficient and doesnt alienate other functions 2024-01-14 17:44:54 +01:00
Sergio Martin d8b904f53f Some simplification 2024-01-14 17:05:10 +01:00
Sergio Martin 361b42be9c More optimizations 2024-01-14 13:51:21 +01:00
Sergio Martin a20bfd0320 Untangling code dependencies 2024-01-14 13:23:14 +01:00
Sergio Martin 7b41851e30 Putting mapper creation in the core file2 2024-01-14 12:10:53 +01:00
Sergio Martin 28da3085f2 adding the baseile quickNES from libretro as part of the benchmark 2024-01-14 11:48:26 +01:00
Sergio Martin 90f249fd16 Adding original quicknes for proper benchmark comparison and testing 2024-01-14 10:59:20 +01:00
Sergio Martin c71a339b18 Reorganizing meson files 2024-01-14 10:31:17 +01:00
Sergio Martin 520512b190 Removing NDEBUG 2024-01-14 09:19:48 +01:00
Sergio Martin 37acae846c Ensuring CPU run function starts at the beggining of a page 2024-01-14 09:17:06 +01:00
Sergio Martin dee398c8f7 Adding 1024-alignment to the cpu run function to prevent it from being split among different pages or L1i lines 2024-01-14 09:01:14 +01:00
Sergio Martin a0062b7002 Refactoring mapper creation 2024-01-14 08:18:23 +01:00