Commit Graph

343 Commits

Author SHA1 Message Date
Vincent Pelletier
3b05046ee9 All: Factorise CRC functions.
This saves 370 bytes of program space.
2022-10-28 05:29:41 +00:00
Vincent Pelletier
337ef94b07 NES.ino: Factorise code.
Mainly, this removes a lot of the logic from selectMapping by reusing the
copy already present in getMapping. As a result, selectMapping is not
expected to be accessed from outside this module anymore.
Also, this factorises several smaller chunks of code found throughout the
module.
Also, get rid of a few easy globals along the way.
Also, move a bit more of NES-specific initialisation and menu display to
the NES.ino module.

This saves about 1490 bytes of code.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
27baa2b164 All: Factorise code seeking a file back N lines
This saves 890 bytes of program space.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
0a627e5bd4 All: Use f.seekCur(x) instead of f.seekSet(f.curPosition() + x)
Saves 450 bytes of program space.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
a555f2117f All: Resolve all compiler and linker warnings
No functional change intended.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
b84f63d1dc Cart_Reader.ino: Drop redundant display_Update call.
In this codepath, there will be a second call just after displaying the
CRC, making this call redundant.
For completeness: In the alternate codepath, the next operation does a lot
of IO, so it makes sense to refresh the screen before printing the CRC.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
daec1f3e35 Card_Reader.ino: Optimise get_line for speed
Do fewer calls to readfile->read, especially if the buffer is large enough
to fit an entire line, resulting in less call/return overhead.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
50da6b9da7 Cart_Reader.ino: Assorted cosmetic changes to compareCRC.
Shorten gamename to the number of bytes actually used in the code, more
sizeof() use.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
264d83f383 Cart_Reader.ino: Drop redundant initialisation.
`i` is initialised on the previous line, along with its declaration.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
92f8626687 Cart_Reader.ino: Drop convertPgm(const char* const [], byte, byte)
This avoids code duplication between it and
  convertPgm(const char* const [], byte)
for just 3 callers, when the callers can be easily updated to call the
latter.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
dc391541b4 Cart_Reader.ino: Simplify fileBrowser pagination.
Also, this resolves a warning about `count` being potentially used
uninitialised: when landing in the "Too many files" codepath.
With this simplification, the limit on the number of files is removed. It
is unclear whether that was intentional (maybe this was gating other
issues ?)?
2022-10-28 05:29:20 +00:00
Vincent Pelletier
dc9ee3b01e Cart_Reader.ino: make myDir a variable local to fileBrowser.
It is not used anywhere else.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
e7ef7fd4bd All: Make flashid an integer
flashid (almost) always contains the hexadecimal representation of two
bytes, which then means it gets compares with strcmp, which in turn need
another string argument. Instead, make it an integer, removing the need to
call strcmp.
Add a separate string representation for printing purposes (maybe this can be
avoided by having the print function format it when needed ?).
The only apparent case where flashid is not an hexadecimal representation
of a pair of bytes is when N64 clears it to "CONF". Set flashid to zero
this case.
This saves about 500 bytes of program space and 200 bytes of ram.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
3fcd1a808d https://github.com/sanni/cartreader/issues/574#issuecomment-1286956251 2022-10-28 05:29:20 +00:00
sanni
5357dea659 Print checksum and header CRC32 when searching database 2022-10-27 23:43:46 +02:00
sanni
3bf6004e79 Fix menu navigation bug 2022-10-13 10:31:17 +02:00
sanni
4badfff458 Move to Arduino IDE 2.0.0 (different auto formatting, no code changes) 2022-10-13 09:49:03 +02:00
sanni
26d025e82f Update Cart_Reader.ino 2022-10-09 11:38:25 +02:00
sanni
be9e384783 Update Cart_Reader.ino 2022-10-09 11:23:42 +02:00
sanni
1769d2f273 Update Cart_Reader.ino 2022-10-09 10:49:20 +02:00
sanni
21e7468dfd Fix flicker in Controller Test 2022-10-08 23:07:15 +02:00
sanni
2c009230cd Fix bugged map select screen on HW3 with new display lib 2022-10-08 18:19:31 +02:00
sanni
0ab7a18b05 V10.1 Move HW1/2/3 to same display lib as HW4/5
... bugs are to be expected :D
2022-10-08 16:23:33 +02:00
sanni
18b37c72d8 Selecting [?] now forwards to manual mapper config for NES 2022-10-07 10:15:18 +02:00
sanni
1a8d127011 Increase romName array size from 17 to 22
Crashed with Lufia II(Estpolis II) before.
2022-10-06 10:20:02 +02:00
sanni
bef9d0f5f9 Don't log manual mapper selection to file for NES/GBA 2022-10-04 20:30:53 +02:00
Lesserkuma
19e0837128 Merge branch 'master' of github.com:lesserkuma/sanni_cartreader 2022-09-28 21:33:34 +02:00
Lesserkuma
786a8586fb Merge branch 'master' 2022-09-28 19:50:58 +02:00
sanni
956c2d1402 Show NES database CRC while searching 2022-09-28 10:13:48 +02:00
sanni
b34334ea04 Update GBA database 2022-09-27 19:11:58 +02:00
Lesserkuma
6098700fdd Merge branch 'master' 2022-09-25 17:06:58 +02:00
sanni
6659b84d9d Add support for Benesse Pocket Challenge W Module (thx to skaman) 2022-09-25 10:36:28 +02:00
Lesserkuma
ff758768df Add support for GB MBC5 8 MiB cartridges 2022-09-25 01:46:46 +02:00
sanni
c1bc2aa093 Update Cart_Reader.ino 2022-09-18 19:31:37 +02:00
sanni
49fdb0131e Remove auto selecting NES mapper config 2022-09-18 19:26:43 +02:00
sanni
b7cbe8e8d9 Verify MPK file after reading 2022-09-10 14:35:47 +02:00
sanni
07a38f30c2 V9.7: Calculate block CRC during Controller Pak read 2022-09-09 00:21:16 +02:00
sanni
7551967b23 Fix CA Led 2022-08-28 08:59:00 +02:00
Niklas Weber
12376730a6 Remove Arduino-RGB-Tools lib, use analogWrite instead 2022-08-27 23:55:30 +02:00
sanni
2a409bd848 Update SNES database to 20220812 2022-08-22 17:49:19 +02:00
sanni
3b7d6bd4fc Add Virtual Boy and Watara Supervision (thx to skaman) 2022-08-21 12:28:47 +02:00
sanni
828062963c Add "(3V)" label to N64 and GBA menu entries 2022-08-21 07:54:13 +02:00
sanni
b8eb3b231f Increase file name length limit 2022-08-19 19:56:35 +02:00
sanni
e01ce10faf Add header and ToC checksum calculation for N64 Controller Pak read 2022-08-19 11:48:43 +02:00
sanni
659eefda63 Improve Controller Pak timing 2022-08-18 19:23:33 +02:00
sanni
e4246d8310 Fix N64 Controller Pak read/write 2022-08-17 22:53:07 +02:00
sanni
df9873aea8 Lengthen displayed name in NES database list 2022-08-06 15:08:01 +02:00
sanni
511902eb56 9.4: Add selecting mapping from database list for NES 2022-08-06 14:50:40 +02:00
sanni
92f76b324c Fix word wrap bug on HW5 2022-08-03 21:59:11 +02:00
sanni
0a2e1ab36d Adjust Col/Int for HW3 screen size 2022-08-03 19:59:23 +02:00
sanni
b5bff8c1f0 V9.3 finish Coleco-/Intellivision database lookup code 2022-08-03 19:35:45 +02:00
sanni
f002e40aa6 Add back option to dump headerless NES ROM 2022-08-03 12:14:32 +02:00
sanni
c07a9334fd Small fixes 2022-07-26 23:26:20 +02:00
sanni
0e56a3451a V9.2 Alpha: Adds Coleco- and Intellivision (thx to skaman) 2022-07-23 11:16:37 +02:00
sanni
e02a8e49df V9.1 Delete broken entries from SNES database 2022-07-18 09:16:56 +02:00
sanni
e87de58328 V9.0 2022-07-17 14:50:59 +02:00
sanni
c3a9baf957 Fix some newly introduced compile errors 2022-07-08 11:36:03 +02:00
sanni
5580dffff0 Fix adding iNES header when manually selecting mapper 2022-07-07 23:20:45 +02:00
sanni
0a4a4d0039 Add no-intro database to NES
This is just a beta release, stuff might be broken.
2022-07-07 00:15:13 +02:00
sanni
9cb0f1fc13 Use CRC1 instead of cart ID in N64 database 2022-07-03 01:03:39 +02:00
sanni
f010f85e6e Update Cart_Reader.ino 2022-06-23 11:17:38 +02:00
sanni
d8d9716aa3 Add files via uplpad 2022-06-23 10:47:30 +02:00
sanni
44d853e1bb Add CRC32 and filenames to SNES database 2022-06-21 13:29:19 +02:00
sanni
fe5264b8ba Add CRC32 and filenames to GBA database 2022-06-20 22:36:53 +02:00
sanni
196050257b Add filenames to N64 database 2022-06-17 23:57:29 +02:00
sanni
8b96d250bd Add MD database 2022-06-16 17:17:16 +02:00
sanni
fac6f8eab2 Copy latest log to dump dir 2022-06-16 15:15:43 +02:00
sanni
f0639e20ad Improve SD logfile 2022-06-14 15:25:53 +02:00
sanni
97a233e7ec Add files via upload 2022-06-12 13:16:03 +02:00
sanni
1c6d277e84 V8.5 BETA: Add global log and GB database
Both are disabled in options.h by default since they push the RAM usage over the limit resulting in corrupted LCD output.

Global log outputs all info to OSCR_LOG.txt in the root of the SD.

no-intro calculates the CRC32 of a Gameboy ROM and if found in the database renames it to no-intro naming scheme.
2022-06-12 12:30:52 +02:00
sanni
ceca79079c Add support for HW5 2022-06-09 00:35:11 +02:00
sanni
8188a64577 Update Cart_Reader.ino 2022-06-08 22:34:28 +02:00
sanni
a27cc96ffd
Update Cart_Reader.ino 2022-06-08 22:30:10 +02:00
sanni
9c102563d1 Fix renaming PCE ROM 2022-04-15 12:52:59 +02:00
sanni
b501556954 Remove toggling CS in GB flash function 2022-04-11 00:28:18 +02:00
sanni
1cc7712b9e V8.2: Fix GB CAM bug 2022-04-10 22:44:59 +02:00
sanni
d3173ef816 Add basic support for SG-1000
For now just for cartridges with no save or mapper chip and rom size up to 32KB.
2022-03-21 01:01:35 +01:00
sanni
4d50065f2d
Update Cart_Reader.ino 2022-03-15 19:33:44 +01:00
sanni
f6eef581bc
Update Cart_Reader.ino 2022-03-14 17:49:32 +01:00
sanni
e61191ae05
Update Cart_Reader.ino 2022-03-14 17:48:35 +01:00
sanni
430f8e3952 Add option to set rom size manually for SMS 2022-03-10 15:05:20 +01:00
sanni
b578b4c47e Change NES menus 2022-03-08 20:44:14 +01:00
sanni
02e78fa06b Add menu for GB Camera Flashcart
This one: https://github.com/HDR/Gameboy-Camera-Flashcart
2022-03-08 18:13:04 +01:00
sanni
6fe2eeffb3 Fix NES LED/LCD conflict with HW4 2022-02-27 13:19:35 +01:00
sanni
9eb7ba5d7c
Update Cart_Reader.ino 2022-02-23 21:09:19 +01:00
sanni
c0abeac385 V7.7: Improve GB Camera dumping (thx to avapug) 2022-02-23 15:08:25 +01:00
sanni
7b92953e0b Reduce ram usage by a small amount 2022-02-15 12:09:21 +01:00
sanni
5f8e8e8d28 Fix LED not blinking in Serial Monitor 2022-02-08 14:12:40 +01:00
sanni
0081ad7b2f flash ID bugfix 2022-01-19 13:15:59 +01:00
sanni
eabb658be8 Clear OLED screen buffer at power on and reset 2022-01-13 17:22:16 +01:00
sanni
6a830e651d Print first 40 bytes if flashrom is unknown 2022-01-13 17:07:58 +01:00
sanni
bda18a4a8b Fix text 2021-11-29 20:11:44 +01:00
sanni
45f46704c9 Fix status LED 2021-11-29 14:32:37 +01:00
sanni
cac5392a07 V7.3: more LCD bugfxes 2021-11-29 13:10:04 +01:00
sanni
eef1c6e8cc Add check if Clockgen is working 2021-11-18 14:55:50 +01:00
sanni
ed3663a21f Fix Progressbar line break on LCD 2021-11-17 21:49:20 +01:00
sanni
7d49814fee Update Cart_Reader.ino 2021-11-17 21:33:50 +01:00
sanni
dfec64917d V7.2: LCD bugfix #2 2021-11-17 21:31:18 +01:00
sanni
2d165f93a4 Update Cart_Reader.ino 2021-11-15 21:18:51 +01:00
CaitSith2
bbe6e3cceb Add Clock generator calibration option 2021-10-28 14:26:10 -07:00