Commit Graph

129 Commits

Author SHA1 Message Date
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
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
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
Remy Starshade
aee632642d Add Voltage Selection Module 2022-11-12 14:13:22 -05: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
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
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
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
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
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
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
sanni
a8a981e137 Auto format 2022-10-28 15:02:51 +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
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
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
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
nsx0r
2f9ff59343
added mapper 255 (same as 225)
added mapper 255 (same as 225)
2022-10-27 16:56:46 +02:00