46 Commits

Author SHA1 Message Date
Konrad Beckmann
26a4c4fc66 snes9x: Boilerplate integration 2021-08-07 20:15:13 +02:00
Brian Pugh
9d35031e69 replace zopfli with zlib until decompression bug is resolved 2021-07-15 20:05:50 +02:00
Brian Pugh
0a3c1c500b case-insensitive extensions when searching for roms 2021-07-08 20:44:17 +02:00
Brian Pugh
ba092b7b16 Update parse_roms.py help strings 2021-07-08 20:06:43 +02:00
Brian Pugh
04f969f67f fix endian order of uncompressed deflate data 2021-07-08 20:06:43 +02:00
Brian Pugh
fcb786a7dc parse_roms.py linting 2021-07-08 20:06:43 +02:00
Brian Pugh
e2bb399642 initial zopfli support in parse_roms.py 2021-07-08 20:06:43 +02:00
Brian Pugh
3ff11840d8 fix exception when attempting to compress non-nes/gb games 2021-07-07 08:36:21 +02:00
Brian Pugh
804612a685 Change lz4 python parameters to match cli 2021-07-07 08:36:21 +02:00
Brian Pugh
e39ede61a2 refactor parse_roms.py to use pathlib and be easily expandable for future compression algorithms 2021-07-07 08:36:21 +02:00
Konrad Beckmann
35bfa1fed7 parse_roms.py: Allocate save space for sg1000 2021-06-30 00:29:37 +02:00
ludo
711052daf7 - Add SG-1000 support 2021-06-30 00:21:12 +02:00
ludo
c01ee42360 Add support of Colecovision 2021-06-30 00:21:05 +02:00
Brian Pugh
f4f1cd2f82 use gsplit if on mac 2021-06-26 00:20:49 +02:00
bzhxx
b30d09365c GB/GBC : add LZ4 ROM compressed support (#91)
* add LZ4 decompression support

* NES: add support for LZ4 compressed ROM. Example : lz4 --best --content-size --no-frame-crc my_rom.nes my_compressed_rom.nes

* fix Makefile

* nes: Expose a buffer with unused ram

* nes: Fix indentation in osd_getromdata

* nes: Use _NES_ROM_UNPACK_BUFFER for LZ4 unpacking

* parse_roms: Compress NES ROMs with LZ4

* fix python typing for backward compatibility 3.6

* NES LZ4 support : add LZ4 format parsing

* Update parse_roms.py

remove unecessary line.

* Update lz4_depack.c

reorder the source code. The notice is now at the top.

* Update parse_roms.py

clean up.

* Update lz4_depack.c

remove  <string.h>.

* change submodule link

* typo comment fix

* GB/GBC add LZ4 ROM compression

* LZ4 library can be shared between emulators

* Add GB SRAM buffer setup using linker

* GB/GBC add LZ4 ROM support with bank switching

* add LZ4 decompress function in assembler for fun and test

* Remove static SRAM memory allocation used by the save function to increase the bank switching cache (14 > 26). The SRAM cache is stolen during save and reloaded right after

* add support for Mix compression and alternative compression statregy to limite cache swapping. By default (--compress), all the banks are compressed except bank#0. Using (--compress_gb_speed), the ROM banks are lightly compressed by selecting the larger banks to fill the cache and by trimming the empty banks. The option (--compress_gb_speed) can be used when a game speed is affected by the compression by default (--compress).

* update LZ4 loader with increased SRAM cache size and support for mixing compressed/uncompressed banks

* Fix to support MBC5 8MB ROM size (256 banks)Fix to support MBC5 8MB ROM size (256 banks)

* Linux emulator NES and GB start checked

* module update.

* Update parse_roms.py

remove print.

* update submodule. fix. LZ4 GB for roms size > 2MB

* LZ4 change compression args --best replaced by -9. Fix typo in new args

* Revert "Merge remote-tracking branch 'upstream/main' into main"

This reverts commit 487606760c, reversing
changes made to d9ab8c2870.

* Revert "Revert "Merge remote-tracking branch 'upstream/main' into main""

This reverts commit 6882de3955.

* GB/GBC: fix LCD glitch at the start by cleaning up the buffer emulator

Co-authored-by: Konrad Beckmann <konrad.beckmann@gmail.com>
Co-authored-by: brice <brice.lehouerou@free.fr>
2021-06-25 09:10:30 +02:00
Konrad Beckmann
06f8760433 parse_roms.py: Use -9 lz4 compression for compatibility
Older versions of lz4 don't support --best, and the gain is
not significant (in my tests).
2021-05-09 15:06:47 +02:00
Konrad Beckmann
80e570a219 parse_roms.py: Don't compress roms that are too large 2021-05-06 08:54:08 +02:00
Konrad Beckmann
137bdeeb7b parse_roms.py: Properly implement previous commit 2021-05-01 21:22:50 +02:00
Konrad Beckmann
203678a7e7 parse_roms.py: Error out when there are no roms 2021-05-01 16:48:23 +02:00
bzhxx
8a4ede05c1 nes: Add LZ4 compression support (#86)
Co-authored-by: Konrad Beckmann <konrad.beckmann@gmail.com>
2021-04-26 21:12:29 +02:00
Konrad Beckmann
6c22c6c2be parse_roms.py: Force objcopy to use arch armv7e-m 2021-03-02 20:19:31 +01:00
GaryZ88
3df1e0a0c0 Adding PC Engine (TurboGrafx-16) Emulation (#78)
Adding PC Engine (TurboGrafx-16) Emulation
2021-02-18 08:16:32 +01:00
Jan Dumon
ea18ae2f5f Use objcopy to convert roms to .o files
Converting the rom files to .c files with char arrays is very heavy on
the memory usage of the compiler. By converting them directly to .o
files this step is no longer needed.

The Makefile dependencies of generating the rom files has been fixed.
Parsing the rom files will now only happen once when -j is used.
2021-02-12 13:55:51 +01:00
Jan Dumon
39377661f8 parse_roms: generate a const struct of the roms
This avoids using malloc for the menu structure of the roms.
2021-01-21 17:26:34 +01:00
Konrad Beckmann
ea53a9c89e parse_roms: Write constant for roms_count 2021-01-13 06:24:43 +01:00
Konrad Beckmann
72159e5b08 parse_roms: Write build/saveflash.ld if it's changed 2021-01-09 06:50:17 +01:00
Konrad Beckmann
6dfce45374 parse_roms: Write build/config.h if it's changed 2021-01-09 06:45:04 +01:00
Konrad Beckmann
3b50f7a1cd Generate emulator configuration based on roms
Closes #57
2021-01-09 06:35:26 +01:00
Jan Dumon
b656959c4d Integrate smsplusgx 2021-01-08 16:27:21 +01:00
Konrad Beckmann
909d60f685 Move parse_roms.py artifacts into build/ 2021-01-03 16:30:31 +01:00
Konrad Beckmann
e47f665d4c Improve parse_roms.py performance 2021-01-02 04:12:31 +01:00
Konrad Beckmann
7ee7001dce Make external flash size configurable 2020-12-30 16:07:28 +01:00
Konrad Beckmann
531c32b340 parse_roms.py: Fix off-by-one 2020-12-29 17:07:06 +01:00
Konrad Beckmann
302647df98 Align saves with 4kB 2020-12-29 17:05:00 +01:00
Konrad Beckmann
2c3c566437 Support 4K, 32K and 64K flash erase 2020-12-29 17:02:43 +01:00
simon
d1b528a310 Add comments about gb ram memorys 2020-12-29 13:11:26 +01:00
Konrad Beckmann
ef5c49e453 Fix typing hint 2020-12-29 03:52:08 +01:00
Konrad Beckmann
29451a18c1 gb: Support GBC 2020-12-29 03:41:26 +01:00
simon
0acbfd6da6 Parse gameboy rom file and store correct save size 2020-12-29 00:11:39 +01:00
miko
5b32c99d53 Added support for more PAL regions
To be more specific; Sweden, Germany, France, and Italy.
2020-12-28 22:31:35 +01:00
Konrad Beckmann
59b841ac7a Include region in rom parsing 2020-12-28 21:59:47 +01:00
viral_dna
e6507c3191 Fix titles for games with periods "."
Titles such as `Ms. Pac-Man (USA)` no longer get cut off after the ".".

closes #23
2020-12-27 22:19:38 +01:00
Konrad Beckmann
c01f51ff57 Finalize state save/load for gb and nes 2020-12-27 16:21:59 +01:00
Konrad Beckmann
72ebd229e2 Add _t suffix and get rid of some warnings 2020-12-27 16:21:55 +01:00
Thomas Roth
de9acc22cd Remoev printf debugging 2020-12-27 16:18:39 +01:00
Thomas Roth
da2df65684 Working GB ROM selection 2020-12-27 16:18:04 +01:00