nsx0r
c851a3c011
[NES] Added mapper 38
...
[NES] Added mapper 38, tested working
2023-04-15 16:12:41 +02:00
nsx0r
e47f935b2e
[NES] Fixed mapper 3 CHR bus conflict
...
Fixed mapper 3 CHR bus conflict
2023-04-15 11:42:35 +02:00
PsyK0p4T
56d90e1d1e
Update PCW.ino
...
- Add progress bar display during dumping
- Add rom size detection for single-pack cartridges
2023-04-15 02:22:07 +02:00
PsyK0p4T
464fc05d36
Update WSV.ino
...
Watara Supervision uses 3V to correctly read carts.
2023-04-14 14:19:22 +02:00
sanni
39343e2f7d
Update NES.ino
2023-04-12 09:54:24 +02:00
nsx0r
1ea1f33cd3
[NES] fixed mapper 34
...
fixed mapper 34, confirmed working thanks to Avalon
2023-04-11 12:33:14 +02:00
nsx0r
12d2a6cac4
[NES] Updated mapper 34 with NINA support
...
Updated mapper 34 with NINA support
2023-04-10 10:35:17 +02:00
sanni
ff31141f7e
Fix Derby Stallion 96
2023-04-07 12:49:20 +02:00
PsyK0p4T
553e86af1e
Update SMS.ino
...
SMS.ino rework :
- new constants are used for adapters and systems (simplify conditions and checks)
- dropped the feature to change adapter mode between two dumps (rarely used and adds many conditions)
- added Retron 3in1 adapter for SMS dumping
- added all possible rom sizes for SMS/GG and SG-1000 carts (40/48k mapping not yet supported)
- during manual rom size selection, the offered values are adapted to selected system
- moved code (function calls, function order...)
- functions, variables, arrays renamed
- comments added/modified
More details listed in this thread : https://github.com/sanni/cartreader/discussions/742
2023-04-06 16:04:50 +02:00
Ancyker
010b7e7525
Firmware Updater support, 3.3V Fix, and more
...
Lots of changes/additions.
Added:
* Firmware Updater support: Supports the Firmware Updater app (release to follow soon). Enabled by default, can be disabled in the config.
* 3.3V Fix (3V3FIX): Enable if you have stability issues when using 3.3V, works best with VSELECT. Disabled by default, can be enabled in the config.
* `DynamicClockSerial`: Class that extends and modifies HardwareSerial to be compatible with a dynamically changing clock speed. Used through the `ClockedSerial` object/variable.
* `OSCR.cpp` & `OSCR.h`: New files for storing globals. Only contains these new additions for now. More code cleanup to come.
Changed:
* Moved configuration flags to `Config.h` and documented them better.
* Removed `vselect()` function. Now uses `setVoltage()` with the params `VOLTS_SET_3V3` and `VOLTS_SET_5V`.
Known Issues:
* Rarely the LCD backlight turns white when using 3V3FIX. Resetting fixes it. Doesn't affect functionality/usability; it's just weird.
2023-03-29 21:05:01 -04:00
PsyK0p4T
21dec9cdc5
Update PCE.ino
2023-03-25 10:50:06 +01:00
sanni
190d35293c
Minor fixes
2023-03-25 08:51:02 +01:00
PsyK0p4T
063a945fca
Add CRC compare
...
Add CRC32 compare / file renaming for WS / WSC / PCv2
2023-03-24 10:24:35 +01:00
PsyK0p4T
8c8784c1be
Update Cart_Reader.ino
2023-03-23 23:51:28 +01:00
sanni
16f4a75721
Add (3V) to NGP menu title
2023-03-19 00:18:44 +01:00
sanni
3d659e4abc
Add (3V) to Wonderswan menu title
2023-03-15 10:10:07 +01:00
PsyK0p4T
79133fe0cb
Update MD.ino
...
Fix "Life on Mars" and "Metal Dragon"
2023-03-10 00:12:02 +01:00
sanni
bc9c306c22
Add Self Test
2023-03-08 18:26:19 +01:00
PsyK0p4T
2efa1f0d48
Update Cart_Reader.ino
...
Fix "Intellivision" wording in LCD menu
2023-03-07 01:18:02 +01:00
PsyK0p4T
77327ab9a2
Update PCE.ino
...
- fix a loop issue brought by yesterday's commit, when banks were increased/decreased and ROM dumped right after.
- screen is now refreshing fine after bank increase/decrease or forced rom size
- display the ROM size value to be set, before forcing it
2023-03-07 01:10:24 +01:00
PsyK0p4T
8217f6a97c
Update PCE.ino
...
Improved convenience :
- Tennokoe dumps are saved into a dedicated "./PCE/RAM/" folder
- "Reset" command was moved to the very last option of PCE menu
- Fixed the double button push when increasing/decreasing the bank index
- Forced ROM size can be set via defined variable
- Removed some repeated/unneeded function calls
2023-03-06 02:44:32 +01:00
PsyK0p4T
39f5682686
Update MD.ino
...
- Add support for "Micro Machines 2 - Turbo Tournament (E)" and "Micro Machines - Military (E)"
- "cartridges size fix" section was re-ordered by detected values
2023-03-06 00:30:58 +01:00
sanni
7eb59aca1e
Fix dumping Hangman (3K cart)
2023-02-26 12:14:15 +01:00
splash5
aff7f09690
Add support for "Fatman (Japan)"
2023-02-26 15:40:53 +08:00
nsx0r
36633971fc
typo fix
2023-02-25 22:33:24 +01:00
sanni
b5e6ac00a5
Up version to V12.4
2023-02-23 12:04:33 +01:00
splash5
7356b5db19
Rebase code to 12.3
...
Reformat code
2023-02-23 13:48:11 +08:00
splash5
79f2a2b16a
Add support for Super A'can flash cart
2023-02-23 12:19:00 +08:00
splash5
b57470510d
Add support for SUPER A'CAN
2023-02-23 12:19:00 +08:00
sanni
782db58ab1
Add fallback if ROM size in MD header is 0
2023-02-19 21:45:52 +01:00
sanni
b623b46e4c
Fix some MD ROM sizes according to no-intro database
2023-02-19 19:47:49 +01:00
sanni
58e8cc1a3b
Fix error when dumping GBA ROM for a second time
2023-02-16 11:32:55 +01:00
PsyK0p4T
4a5b19794c
Update NGP.ino
...
Fix path error for "Cotton (Japan)" and "Cotton (Europe)".
Thx ickaze.
2023-02-13 13:58:39 +01:00
sanni
e98d21f9c1
Fix adding multiple newlines to log when scrolling through NES database
2023-02-13 11:54:19 +01:00
sanni
86d0abbb0b
V12.3 Enable fastcrc for HW3 by default
2023-02-10 17:11:36 +01:00
sanni
6959c055e6
Improve stability when dumping N64 with fastcrc option
2023-02-10 13:16:32 +01:00
sanni
e9d9617ad8
V12.2
2023-02-10 10:15:35 +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
nsx0r
7f8f49cb9c
fixed mapper 36
...
fixed mapper 36
2023-02-06 21:28:51 +01:00
sanni
16eb662c3b
6K Fairchild confirmed working (thx to skaman)
2023-02-06 09:13:41 +01:00
PsyK0p4T
7334883315
Add some flashcarts dumping support
...
Add support for :
- "16M / 32M Pocket Flash Card" : old flashcarts, respectively in black, and transparent purple cases. Since their flash chips are returning 0x204C value (4Mbits), you will need to manually select the wanted ROM size before dumping them.
- "NeoGeo USB Flash Masta 2 in 1" : contains 2x 16Mbits Fujitsu chips, now detected fine.
2023-02-06 01:08:26 +01:00
PsyK0p4T
c68234b9ee
Update MD.ino
...
- Modified Beggar Prince rev.1 detection method
- Added Legend of Wukong support
2023-02-05 02:27:19 +01:00
sanni
5cefd8362c
Update FLASH.ino
2023-02-04 15:51:12 +01:00
PsyK0p4T
a2c94b7215
Add support for Beggar Prince rev.1
...
Fixes cart size, rom header provides wrong values
2023-01-31 00:57:19 +01:00
sanni
032000d369
Disable addons by default
2023-01-17 08:29:05 +01:00
sanni
c8bfc64009
Change 2022 to 2023 in about screen
2023-01-16 12:35:48 +01:00
PsyK0p4T
f471a7e394
Fix game using sram
...
"Virtual Fishing" moved to carts using sram
2023-01-16 02:15:24 +01:00
PsyK0p4T
ae55f07b2f
Add progress bar
2023-01-16 01:12:30 +01:00
sanni
978fc80287
Fix display flicker on HW5 with Arc, Atari, Fairchild and Ody2 size/mapper selection
2023-01-15 15:25:24 +01:00
PsyK0p4T
c77ad6da2e
Update PCE.ino
...
Add support for "Populous (Japan)"
2023-01-11 01:01:21 +01:00
PsyK0p4T
3725c017f7
Update PCE.ino
...
32KB ROM size detection added :
- "Games Express CD Card (Japan)" is now dumped fine
- helps to see if another card is badly inserted/recognized
2023-01-11 00:16:46 +01:00
sanni
1d57169447
Add support for Demons of Asteborg (thx to skaman)
2023-01-04 15:35:13 +01:00
sanni
248a1d9af5
V12.0: Add Atari 2600, Emerson Arcadia 2001, Fairchild Channel F, Magnavox Odyssey 2 modules (thx to skaman)
2023-01-03 19:33:34 +01:00
nsx0r
04f80edc1e
addes mappers 56 + 236
...
addes mappers 56 + 236
2022-12-30 08:24:54 +01:00
splash5
cf9b70554f
Fix for NES "TMNT2" (Japan, VRC4)
2022-12-25 18:45:14 +08:00
nsx0r
1895ba1442
added mappers 31, 57, 214 + fixes
...
added mapper 31, 57, 214
fixed 94, 97, 180 for bus conflicts
fixed mapper 73 (see discussion https://github.com/sanni/cartreader/discussions/657 about Salamander)
merged 200+212
2022-12-22 21:55:00 +01:00
sanni
d977b14cf4
Fix MD Zero Wing (E) (thx to jaffa225)
...
More info: https://github.com/sanni/cartreader/issues/664
2022-12-20 10:31:35 +01:00
nsx0r
2d3eeed53a
fixed mapper 23
...
fixed mapper 23, tested working with Ganbare Goemon 2
2022-12-14 21:46:39 +01:00
nsx0r
bff292435e
mapper 209 dumps the same as 35, 90 and 211
...
mapper 209 dumps the same as 35, 90 and 211
also added info about unused mappers (20, 84, 100,101, 151, 186 and 248)
2022-12-14 13:15:32 +01:00
sanni
d13d8f6817
Merge pull request #659 from splash5/famicom
...
Add NES mapper 209
2022-12-14 11:52:50 +01:00
splash5
36c01f4c8d
Add NES mapper 209
...
Tested with "Shin Samurai Spirits 2 (JY-083)"
2022-12-14 11:47:53 +08:00
nsx0r
b5cd20566e
fixed mapper 63
...
fixed mapper 63, tested working with Powerful 255-in-1 (CH-011 PCB)
2022-12-13 19:11:55 +01:00
sanni
94fa2e8182
Merge pull request #655 from splash5/snes-akaj
...
Fix SNES "Kakinoki Shougi (Japan)"
2022-12-11 11:08:49 +01:00
splash5
eea4fb365f
Do compareCRC when reading game in SFM.
...
Don't rename when calculate checksum, just use filename and folder.
2022-12-11 10:49:07 +08:00
nsx0r
0f1a37e6d3
Update NES.ino
2022-12-11 00:00:57 +01:00
nsx0r
95e795023d
[WIP] solving mappers with bus conflicts
...
solving mappers with bus conflicts, mapper 2 is fixed, more to come after more testing
2022-12-10 15:05:16 +01:00
nsx0r
a18434b8fc
added NES mappers 59+63+113+126+134+174
...
added NES mappers 59+63+113+126+134+174
2022-12-08 16:10:05 +01:00
nsx0r
eba530437f
added NES mappers 46+52+212
...
added NES mappers 46+52+212
2022-12-06 16:48:53 +01:00
nsx0r
86c5e78870
added NES mappers 42+142+157+162+163+177
...
added NES mappers 42+142+157+162+163+177
2022-12-05 20:35:51 +01:00
nsx0r
f258b1ec76
addes NES mappers 178+227+241
...
addes NES mappers 178+227+241
2022-12-04 08:45:49 +01:00
nsx0r
2c477ddae1
added NES mapper 176
...
added NES mapper 176, tested working
2022-11-24 22:18:46 +01:00
splash5
ed1c1f0bea
Fix SNES Daikaijuu Monogatari 2
2022-11-24 17:08:41 +08:00
nsx0r
36fa976b53
added NES mapper 28
...
added NES mapper 28, tested working with 2x Action 53 cartridges
2022-11-19 09:04:06 +01:00
sanni
46dd333bd4
Fix NES mapper selection
2022-11-18 10:46:13 +01:00
nsx0r
4cf2f761ee
adjusting min/max sizes for some mappers
...
adjusting min/max sizes for some mappers, this is required to dump some recent carts:
Lucky Penguin is 64k mapper 2
Project Blue is 512k mapper 34
2022-11-18 07:47:04 +01:00
sanni
8dcb841109
Up version number
2022-11-12 20:25:51 +01:00
Ancyker
e806b39658
Merge pull request #1 from sanni/master
...
Update with master
2022-11-12 14:15:19 -05:00
Remy Starshade
aee632642d
Add Voltage Selection Module
2022-11-12 14:13:22 -05:00
scrap-a
ca23277b5a
Fix Sonic & Knuckles
2022-11-13 03:05:19 +09:00
nsx0r
cf8e3f9b21
fixed mapper 225/255
...
i finally got 2 carts to confirm this is working with this fix
2022-11-11 12:08:17 +01:00
nsx0r
39988d2b1c
fixed mapper 226
...
forgot to set the high bit for bigger carts
2022-11-11 10:53:13 +01:00
nsx0r
9decd85848
added NES mapper 226
...
added NES mapper 226, tested working with NES pirate multicart 42-in-1
2022-11-10 23:20:23 +01:00
nsx0r
fdc1911b5e
fixing NES mapper 228
...
that *should* work
2022-11-09 10:54:58 +01:00
nsx0r
8b493c4447
added NES mapper 228 - UNTESTED
...
added NES mapper 228 (Action 52 + Cheetahmen II) - NEED TESTING
2022-11-08 12:49:42 +01:00
Vincent Pelletier
78c05c826c
Cart_Reader.ino: Move definitions after all forward declarations
...
It seems the Arduino IDE picks the position of the first definition to
insert all auto-generated forward declarations. This fails to compile if
any of these generated forward declarations references a type included
later.
So, reorder the code a bit so the first definition happens strictly after
the last inclusion.
2022-11-05 05:04:37 +00:00
Vincent Pelletier
ab9e36e12e
Cart_Reader.ino: Comment rewind_line implementation
...
The logic of this function is not immediately clear, so comment it
extensively.
2022-11-05 05:04:37 +00:00
Vincent Pelletier
e334edb4e5
Cart_Reader.ino: Simplify checkButton nesting
...
Also, fixes a compiler warning on the HW4/5 function, which could reach
the function's end without a "return" statement.
2022-11-05 05:04:37 +00:00
Vincent Pelletier
7b1e74c1fc
Cart_Reader.ino: Always return a value from SERIAL_MONITOR checkButton
2022-11-05 01:24:19 +00:00
Vincent Pelletier
6de1a34cd7
Cart_Reader.ino: Catch-all condition for page 3
...
Makes it clear to the compiler that no other page exist, and hence
option_offset and num_answers are always initialised.
2022-11-05 01:02:18 +00:00
Vincent Pelletier
4d3cdd9004
NES.ino: Always set browseDatabase
...
Fixes a compiler warning.
2022-11-05 00:43:24 +00:00
nsx0r
43669ce181
addes NES mapper 111
...
addes NES mapper 111
2022-11-02 12:27:08 +01:00
nsx0r
bc0923d1ac
actually fix all NAMCOT mappers similar to 206
...
actually fix all NAMCOT mappers similar to 206
2022-11-02 07:44:25 +01:00
nsx0r
4a799e6969
fixed NES mapper 206
...
fixed NES mapper 206, tested working with FC game "Super Chinese"
2022-11-02 05:50:33 +01:00
sanni
61cc4b034c
Update Cart_Reader.ino
2022-11-02 01:20:35 +01:00
sanni
044e90f575
Update Cart_Reader.ino
2022-11-02 00:44:16 +01:00
sanni
a3b1882e88
Fix NES manual mapper selection
2022-11-02 00:32:54 +01:00
sanni
78aa7a3d34
Update NES.ino
2022-11-01 23:32:46 +01:00
sanni
2c95299010
Turn LED off when rotary button is pressed
2022-11-01 22:50:14 +01:00
sanni
d7082a2366
Add fast scrolling through NES database
...
Fast scrolling skips 30 entries at once.
Also fixed lockup when browsing backwards on first database entry.
2022-11-01 22:26:53 +01:00
Vincent Pelletier
90303b45c0
SNES.ino: Restore code with side-effects
...
This code was removed as part of
a555f21
("All: Resolve all compiler and linker warnings")
because it was filling a 1kB buffer which was never read from.
While I expect reading values from PINC should be invisible from the
cartridge's perspective, writing to PORTL, PORTF and PORTK is definitely
visible.
I have currently no way of testing if this code is required, so in doubt
restore the parts which have effects visible from the cartridge.
2022-11-01 07:56:15 +00:00
Vincent Pelletier
c82815f0d5
SFM.ino, SNES.ino: Rework compiler warnings resolution
...
I am not sure why I changed some variables from 16 bit types to 8 bit types
when the warnings being resolved were only about signedness.
Fixes: a555f21
("All: Resolve all compiler and linker warnings")
2022-11-01 07:53:35 +00: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
sanni
a3feb32e15
V11.1
2022-10-31 11:40:15 +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
0a823bf5b7
Cart_Reader.ino: Factorise missing module error.
...
Also, handle one such case in the HW3 main menu.
2022-10-31 08:52:19 +00:00
Vincent Pelletier
25b615f77c
Cart_Reader.ino: Move print_FatalError prototypes earlier in the file
...
So they can be used in more places within that file.
2022-10-31 05:48:46 +00:00
Vincent Pelletier
4a2a2c69d2
Cart_Reader.ino: Deduplicate HW5 mainMenu pagination logic
2022-10-31 05:48:46 +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
3826f5aa10
Update Cart_Reader.ino
2022-10-30 11:46:55 +01:00
Vincent Pelletier
fbaed78eb5
SFM.ino: Get rid of write-only global variables
...
These variables are set but never read. Removing them removes a non-trivial
amount of code, which I am not comfortable deleting: it contains knowledge
about cart data structure, even though it is currently not being used for
anything. So comment it out until someone who know this architecture better
comes around.
Frees 146 bytes of program space and 16 bytes of global ram space.
2022-10-29 09:46:00 +00:00
Vincent Pelletier
18bd92d100
WSV.ino: Move WVS to PROGMEM
...
Frees 16 bytes of program space and 8 bytes of global ram space.
2022-10-29 08:01:59 +00:00
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
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