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
e4e09c7bf8
GBA.ino: Reduce gbaMenu size.
...
Replace switch blocks which produce one output with const tables.
Use functions instead of repeating code.
Move common initial and final statements outside of blocks.
Also, do not erase/flash second bank on dual-bank chips when the first one
had failures.
This saves about 520 bytes of code and increases ram use by 12 bytes.
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
d81f2c0509
NES.ino: Simplify CRC functions.
...
It seems crc32EEP only exists because the actual number of bytes read from
file were not checked, hence falling back to smaller reads.
Instead, always read up to the full available buffer, adding to the CRC
only as many bytes as were actually read.
Also, move some related variables to local scope.
Overall, this saves about 50 bytes of code and 80 bytes of global ram.
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
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
b3eb3dd928
GBS.ino: Move gbSmartGames from globals to a local.
...
Saves 120 bytes of global ram space.
Also, factorise code reading a single entry. This saves about 60 bytes of
code space.
2022-10-28 05:29:20 +00:00
Vincent Pelletier
ae2e90a6cd
PCE.ino: Skip strcpy to menuOptionspceCart
...
Values can be directly composed/initialised in menuOptionspceCart, avoiding
the need to strcpy to it.
This saves about 100 bytes of ram by dropping a few global char arrays.
Re-duplicates "Reset" string initialiser, but this should not be a big
deal.
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
PsyK0p4T
ce436e8a77
Use sg1000.txt database
...
Use sg1000.txt database to verify/rename SG-1000 dumps
2022-10-27 22:25:34 +02:00
nsx0r
2f9ff59343
added mapper 255 (same as 225)
...
added mapper 255 (same as 225)
2022-10-27 16:56:46 +02:00
nsx0r
6435a64df8
added NES mappers 240 and 246
...
added NES mappers 240 and 246
2022-10-27 16:17:49 +02:00
sanni
3f83dcec55
Merge pull request #589 from nsx0r/master
...
more NES mappers fixes
2022-10-26 21:58:35 +02:00
BacteriaMage
ab5f94af85
fix superfx sram size detection
...
The header offsets were wrong so the size wasn't correctly computed and generally ended up defaulting to 32KB. Stunt Race FX, at least, uses 64KB and so only half the save data was being read.
2022-10-25 19:54:40 -05:00
nsx0r
cc6494857f
PRG 97 = 180 -> merged code
...
PRG 97 = 180 -> merged code
2022-10-25 19:59:52 +02:00
nsx0r
9506005c6b
fixed NES mapper 200
...
fixed NES mapper 200
2022-10-25 12:28:38 +02:00
nsx0r
6590f7e583
added 2 missing mapper labels
...
added 2 missing mapper labels
2022-10-25 09:33:22 +02:00
sanni
9cabf64a0e
Merge pull request #583 from nsx0r/patch-21
...
fixed NES mapper 203
2022-10-24 16:36:50 +02:00
nsx0r
afe7440ead
fixed NES mapper 203
...
fixed NES mapper 203
2022-10-24 15:04:51 +02:00
nsx0r
cda710940c
added NES mapper 202
...
added NES mapper 202
2022-10-24 14:50:33 +02:00
nsx0r
3396aeb532
added 8 more NES mappers
...
added NES mappers 58 + 200 + 201 + 203 + 213 + 225 + 229 + 232
2022-10-23 20:57:34 +02:00
nsx0r
707b314a7a
Added NES mapper 60
...
Added NES mapper 60 for reset-based NROM-128 4-in-1 multicarts.
Tested working on 7 different NES carts.
2022-10-22 09:01:18 +02:00
nsx0r
7264477bc1
added NES mapper 242
...
added NES mapper 242, tested working with "1992" 190-in-1 multicart (ET-113 PCB), both on FC and NES
2022-10-21 00:43:45 +02:00
nsx0r
c2648157c9
Added NES mapper 235
...
Added NES mapper 235, tested working with Golden Game 260-in-1 (GS-2018 PCB)
2022-10-20 14:01:23 +02:00
nsx0r
84da646ac9
added NES mapper 62
...
added NES mapper 62, tested working with a multicart using K-1017P PCB
also expanded max PRG size for these big multicarts
2022-10-19 14:43:42 +02:00
nsx0r
8064397836
added NES mapper 15
...
added NES mapper 15, tested working with 2 carts using a K-1030P PCB
2022-10-19 11:08:13 +02:00
sanni
57f2833322
Update MD.ino
2022-10-16 14:51:15 +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
nsx0r
e279359f16
added NES mapper 11
...
added NES mapper 11 (Color Dreams)
tested working with Shockwave
2022-10-12 23:07:43 +02:00
nsx0r
67905aee5a
added mapper 146
...
not tested but identical to mapper 79 according to https://www.nesdev.org/wiki/NINA-003-006
2022-10-12 22:11:35 +02:00
nsx0r
3bbad14bb8
added NES mapper 79
...
added NES mapper 79: NINA-03 and NINA-06 circuit boards, produced by American Video Entertainment.
tested working with Deathbots and Dudes with Attitude
2022-10-12 19:49:32 +02:00
sanni
e4adfce8dd
Update README.md
2022-10-12 10:16:08 +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
a49d8c6590
Remove crc file after successful Controller Pak read
2022-10-08 19:20:21 +02:00
sanni
2c009230cd
Fix bugged map select screen on HW3 with new display lib
2022-10-08 18:19:31 +02:00
sanni
bdee198286
Update README.md
2022-10-08 16:25:41 +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
b7fa65a3de
Add MMC3 auto detect
2022-10-06 19:58:04 +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
3d7c424344
Update NES.ino
2022-10-04 21:11:13 +02:00
sanni
bef9d0f5f9
Don't log manual mapper selection to file for NES/GBA
2022-10-04 20:30:53 +02:00
sanni
20898cf3d3
Update NES.ino
2022-10-04 15:48:11 +02:00
nsx0r
bb63d912c9
fixed mapper 30
...
tested working with multiple NES and FC carts using UNROM-512
2022-10-02 13:25:33 +02:00
nsx0r
43c7be5fbd
fixed mapper 93
...
confirmed working with Fantasy Zone (J)
2022-10-01 14:41:47 +02:00
sanni
6c1c9876b4
Update PCE.ino
2022-09-30 00:35:02 +02:00
Lesserkuma
4cac40e011
Remove debug output
2022-09-28 21:46:21 +02:00
Lesserkuma
e892a8e9f1
Fixed wording
2022-09-28 21:42:05 +02:00
Lesserkuma
19e0837128
Merge branch 'master' of github.com:lesserkuma/sanni_cartreader
2022-09-28 21:33:34 +02:00
Lesserkuma
dab124def7
Find Game Serial for Game Boy
2022-09-28 21:31:49 +02:00
Lesserkuma
786a8586fb
Merge branch 'master'
2022-09-28 19:50:58 +02:00
Lesserkuma
9d42ce0964
Add support for the Game Boy MBC6 mapper (save write)
2022-09-28 18:52:52 +02:00
Lesserkuma
f7d9051b95
Add support for the Game Boy MBC6 mapper (save read)
2022-09-28 18:00:16 +02:00
Lesserkuma
38c2262f1c
Add support for the Game Boy MBC6 mapper (ROM read)
2022-09-28 15:15:04 +02:00
sanni
956c2d1402
Show NES database CRC while searching
2022-09-28 10:13:48 +02:00
sanni
b51a01f1f5
Fix Typo
2022-09-27 19:24:21 +02:00
sanni
b34334ea04
Update GBA database
2022-09-27 19:11:58 +02:00
Lesserkuma
282f5bc108
Add support for the Game Boy TAMA5 mapper (ROM read)
2022-09-25 23:35:29 +02:00
Lesserkuma
6098700fdd
Merge branch 'master'
2022-09-25 17:06:58 +02:00
Lesserkuma
866f0ce2b5
Add support for the Game Boy MBC1M mapper
2022-09-25 16:58:58 +02:00
Lesserkuma
140401161b
UI improvements for GB, GBA, N64, SNES
2022-09-25 16:40:21 +02:00
sanni
d086b277ef
Add support for NES mapper 45 (thx to skaman)
2022-09-25 11:09:54 +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
Lesserkuma
8713b49706
Use correct mapper type for GB Mani 4 in 1
2022-09-24 15:34:46 +02:00
Lesserkuma
3a9ccf65b0
Add support for the Game Boy M161 mapper
2022-09-24 14:38:55 +02:00
Lesserkuma
77c0daeb6a
Update to displaying full ROM title on SNES, N64, GB, GBA
2022-09-24 14:36:13 +02:00
Lesserkuma
37c9f2f026
Display mapper names for MBC7, HuC-1 and HuC-3 (these are currently supported at least for ROM reading)
2022-09-23 21:57:06 +02:00
Lesserkuma
eed3324a56
Display full ROM title for GB and GBA
2022-09-23 21:55:16 +02:00
sanni
96f984c1ac
Add 32x database
2022-09-18 20:43:18 +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
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
PsyK0p4T
46a01069f1
Adding "Retron 3in1" support for GG
...
- "Retron 3in1" adapter support for GG dumping added
- 32KB GG and SMS carts are now handled same
2022-08-29 14:39:02 +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
4c8cfcbae6
Fix dumping Phantasy Star IV
2022-08-24 19:24:30 +02:00
splash5
d506cd5358
Support for dumping "Street Fighter Zero 2" (SDD1 ROM Only)
2022-08-24 11:48:49 +08:00
sanni
d7d49bac75
Add some text when changing size based on database
2022-08-22 21:20:05 +02:00
sanni
c353451e31
Forgot about Tales
2022-08-22 20:50:52 +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