nsx0r
36633971fc
typo fix
2023-02-25 22:33:24 +01:00
sanni
6959c055e6
Improve stability when dumping N64 with fastcrc option
2023-02-10 13:16:32 +01:00
sanni
2f71d0572e
Fix SRAM overflow in N64/MD, turn LED red if CRC not found
2023-02-10 09:40:58 +01:00
Remy Starshade
aee632642d
Add Voltage Selection Module
2022-11-12 14:13:22 -05:00
sanni
cc17c70e30
Fix reading/writing 4MB HiROM
...
HiROM starts at bank 192 and has 64 banks so byte variable currBank overflows.
2022-10-31 15:41:29 +01:00
Vincent Pelletier
f07f6f9025
All: Replace print_Error(*, boolean) calls with print_{,Fatal}Error(*)
...
Also, make print_FatalError(*) independent from print_Error(*).
Also, factorise common parts of print_Error(*).
Frees 2336 bytes of program space and 5 bytes of global ram space.
2022-10-31 08:52:33 +00:00
Vincent Pelletier
a35c882662
N64.ino: Factorise JoyBus-related code
...
IMPORTANT: with this change, the Adafruit clock generator becomes a hard
requirement to read and write gamecart eeproms.
This is a large patch, partly because JoyBus is used a lot:
- controller
- controller pak
- gamecart eeprom
and partly because of the further simplifications it allows.
Also, implement low-level bit shift functions in assembly in order to get
complete control of the timings: there can be just a few cycles of slack.
Also, use the time waiting for the input line to go high to pack received
bits into bytes on-the-fly, as there is now plenty of time.
This saves about 2080 bytes of program space, and 369 bytes of global ram
space.
2022-10-31 05:48:46 +00:00
Vincent Pelletier
bea06e55fe
N64.ino: Assorted low-hanging fruits
...
More sizeof() use, avoiding high-level loops when a callee can do it
without the call overhead on every iteration, a bit of source code
factorisation, avoiding initializers for large variables.
2022-10-31 05:48:46 +00:00
Vincent Pelletier
d9daadb1f9
N64.ino: Build eeprom path and file name with snprintf_P
...
So the format string is stored in flash rather than in ram.
The gain from doing just one like this is not much, to be done in more
places.
2022-10-31 01:16:06 +00:00
Vincent Pelletier
a43b2553cd
N64.ino: Optimise controller CRC functions for speed
...
Also, shave off 5 bytes from a local initializer.
Saves 22 bytes of program space and of global ram space.
2022-10-31 01:16:06 +00:00
sanni
a8a981e137
Auto format
2022-10-28 15:02:51 +02:00
Vincent Pelletier
67b54a690b
All: Factorise title generation from cart.
...
Fix out-of-bound access when first byte is not an ascii printable
character.
Reduces program space use by 480 bytes.
2022-10-28 05:29:44 +00:00
Vincent Pelletier
3b05046ee9
All: Factorise CRC functions.
...
This saves 370 bytes of program space.
2022-10-28 05:29:41 +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
d7bbc59607
N64.ino: Remove unused function
...
This does not save any space as the linker noticed it wasn't used.
Also, point the (commented-out) only caller to the equivalent libc
function.
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
4badfff458
Move to Arduino IDE 2.0.0 (different auto formatting, no code changes)
2022-10-13 09:49:03 +02:00
sanni
21e7468dfd
Fix flicker in Controller Test
2022-10-08 23:07:15 +02:00
sanni
a49d8c6590
Remove crc file after successful Controller Pak read
2022-10-08 19:20:21 +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
Lesserkuma
e892a8e9f1
Fixed wording
2022-09-28 21:42:05 +02:00
Lesserkuma
dab124def7
Find Game Serial for Game Boy
2022-09-28 21:31:49 +02:00
Lesserkuma
6098700fdd
Merge branch 'master'
2022-09-25 17:06:58 +02:00
Lesserkuma
140401161b
UI improvements for GB, GBA, N64, SNES
2022-09-25 16:40:21 +02:00
sanni
6659b84d9d
Add support for Benesse Pocket Challenge W Module (thx to skaman)
2022-09-25 10:36:28 +02:00
Lesserkuma
77c0daeb6a
Update to displaying full ROM title on SNES, N64, GB, GBA
2022-09-24 14:36:13 +02:00
sanni
38bc8a59e5
Fix bug in N64 controller functions
2022-09-10 15:57:01 +02:00
sanni
3500d4684e
Update N64.ino
2022-09-10 15:15:32 +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
90bbccd959
Update N64.ino
2022-08-19 19:27:28 +02:00
sanni
97394939a1
Update N64.ino
2022-08-19 11:50:18 +02:00
sanni
e01ce10faf
Add header and ToC checksum calculation for N64 Controller Pak read
2022-08-19 11:48:43 +02:00
sanni
b96c338d79
Reset N64 Controller before accessing Controller Pak
2022-08-18 21:19:58 +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
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
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
44d853e1bb
Add CRC32 and filenames to SNES database
2022-06-21 13:29:19 +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
Kreeblah
75e85af20f
Automatically create snes_clk.txt if it doesn't exist
2022-02-26 21:20:33 -08:00
sanni
bb4ae30151
Update N64.ino
2022-02-12 13:24:05 +01:00