Vincent Pelletier
d4c5f6ec5b
GBA.ino: Get rid of calcChecksumStr as a global
...
Frees 150 bytes of program space and 5 bytes of global ram space.
2022-10-29 07:16:37 +00:00
Vincent Pelletier
3bb63d77e3
COLV.ino: Move COL to PROGMEM
...
Uses 30 bytes of program space
Frees 6 bytes of global ram space.
2022-10-29 07:16:37 +00:00
Vincent Pelletier
65f7950af4
NES.ino: Move PRG, CHR and RAM to PROGMEM.
...
Uses 90 bytes of program space.
Frees 40 bytes of global ram space.
2022-10-29 07:16:37 +00:00
Vincent Pelletier
133e3feda9
Cart_Reader.ino: New variants of print_Error
...
Tagged with noreturn so the compiler knows about the effect of
forceReset=true.
Ideally, print_Error should lose its forceReset argument so that:
- print_Error never resets
- print_FatalError always resets (and hosts the code doing so)
so the compiler is more accurately aware of the execution flow.
2022-10-29 07:16:37 +00:00
sanni
34981fdb8e
Fix compile error
2022-10-28 15:09:15 +02:00
sanni
a8a981e137
Auto format
2022-10-28 15:02:51 +02:00
sanni
30d880bfa7
Fix SNES romName
2022-10-28 13:38:16 +02:00
sanni
24c5957993
Fix CRC32 calculation
2022-10-28 12:56:38 +02:00
nsx0r
2682e5ef94
added NES mapper 91 + m36 typo fix
...
added NES mapper 91 + m36 typo fix
2022-10-28 11:49:55 +02:00
nsx0r
1509549946
added NES mapper 36
...
added NES mapper 36
2022-10-28 10:29:54 +02:00
sanni
748b9094df
V11.0
2022-10-28 10:26:04 +02:00
Vincent Pelletier
10061beaf5
MD.ino: Move some globals to getCartInfo_MD locals.
...
Also, bypass sdBuffer when it was the directory copied to another buffer.
Also, factorise yet another pair of loops copying rom name.
This frees 59 bytes of global ram space.
2022-10-28 05:29:44 +00:00
Vincent Pelletier
3c3b399d6a
SFM.ino: Move all menu variables from globals to locals.
...
Saves about 100 bytes of program memory and 80 bytes of global ram.
2022-10-28 05:29:44 +00:00
Vincent Pelletier
3632b06980
SFM.ino: Factorise single-game gamecode retrieval.
...
Frees 220 bytes of code and 16 bytes of ram.
2022-10-28 05:29:44 +00: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
84738038e1
NES.ino: Give more time to read "No data found" message.
2022-10-28 05:29:20 +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
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
sanni
b8eb3b231f
Increase file name length limit
2022-08-19 19:56:35 +02:00
sanni
90bbccd959
Update N64.ino
2022-08-19 19:27:28 +02:00
sanni
fb743285fe
Only correct SNES ROM size if non-standard size found in database, else trust header info to be correct
2022-08-19 12:16:14 +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
4ed007981a
Update README.md
2022-08-08 19:54:00 +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
5012ca88ac
Fix crash
2022-08-03 19:48:12 +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
PsyK0p4T
0fea256251
Fix 32KB GG
...
32KB GG carts don't use mapper.
Games sush as Columns, Woody Pop etc. are now dumped fine.
2022-07-29 00:47:37 +02:00
sanni
c07a9334fd
Small fixes
2022-07-26 23:26:20 +02:00
PsyK0p4T
77557c3f18
Update SMS.ino
...
Various changes to distinct GG from SMS on screen.
gg.txt is now used for GG crc checks.
2022-07-25 13:16:15 +02:00
Lesserkuma
6fea477155
Add support for missing GBA flash save chips (Atmel AT29LV512, Macronix MX29L512, Panasonic MN63F805MNP, SANYO LE26FV10N1TS)
2022-07-24 01:00:37 +02:00
sanni
0e56a3451a
V9.2 Alpha: Adds Coleco- and Intellivision (thx to skaman)
2022-07-23 11:16:37 +02:00
karim
36c6c657d6
fix reset byte
2022-07-18 20:35:48 -04:00
karim
a7efb5d140
fix flashing unrom-512 to match INL code
2022-07-18 20:29:50 -04:00
PsyK0p4T
b3653b99f6
Progress bar added
...
Progress bar added during ROM dump
Few wordings edited
2022-07-18 11:24:23 +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
39f7a4a3c7
Break out of GBA database loop once ID is found
...
thx to stewartspicer
2022-07-07 23:55:33 +02:00
sanni
5580dffff0
Fix adding iNES header when manually selecting mapper
2022-07-07 23:20:45 +02:00
sanni
e80866a5ff
Filter out 0xFF checksum
2022-07-07 11:22:16 +02:00
sanni
d6a4101a96
Improve NES cart detection
2022-07-07 10:51:36 +02:00
sanni
7d1f6d2136
Update NES.ino
2022-07-07 00:51:44 +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