Vincent Pelletier
cb26782e22
PCE.ino: Get rid of menuOptionspceCart global variable
...
Also, move a few inline string constants into PROGMEM.
Uses 64 bytes of program space.
Frees 206 bytes of global ram space.
2022-10-29 08:01:59 +00:00
Vincent Pelletier
59665bb848
NES.ino: Factorise Create{PRG,CHR,RAM}FileInSD functions
...
Also, gets rid of filesCount global.
Frees 390 bytes of program space and 21 bytes of global ram space.
2022-10-29 08:01:55 +00:00
Vincent Pelletier
64db4ded54
NES.ino: Convert nointro-disabled global variables into locals
...
Also, remove dead error handling code: sd.exists internally opens the file
and returns the produced status, so myFile.open return value should be the
same.
2022-10-29 07:16:37 +00:00
Vincent Pelletier
264bfd5ce5
INTV.ino: Move INTV to PROGMEM.
...
Uses 8 bytes of program space.
Frees 6 bytes of global ram space.
2022-10-29 07:16:37 +00:00
Vincent Pelletier
a6f9e5e99c
GBA.ino: Get rid of unused global
2022-10-29 07:16:37 +00:00
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