Skip to content

Commit e3a8355

Browse files
authored
Fix eeprom probe and remove redundant eeprom size checks (#70)
1 parent d5c81d0 commit e3a8355

File tree

1 file changed

+5
-14
lines changed

1 file changed

+5
-14
lines changed

librecomp/src/eep.cpp

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,19 @@ void save_write(RDRAM_ARG PTR(void) rdram_address, uint32_t offset, uint32_t cou
77
void save_read(RDRAM_ARG PTR(void) rdram_address, uint32_t offset, uint32_t count);
88

99
constexpr int eeprom_block_size = 8;
10-
constexpr int eep4_size = 4096;
11-
constexpr int eep4_block_count = eep4_size / eeprom_block_size;
12-
constexpr int eep16_size = 16384;
13-
constexpr int eep16_block_count = eep16_size / eeprom_block_size;
1410

1511
extern "C" void osEepromProbe_recomp(uint8_t* rdram, recomp_context* ctx) {
1612
switch (recomp::get_save_type()) {
1713
case recomp::SaveType::AllowAll:
1814
case recomp::SaveType::Eep16k:
1915
ctx->r2 = 0x02; // EEPROM_TYPE_16K
16+
break;
2017
case recomp::SaveType::Eep4k:
2118
ctx->r2 = 0x01; // EEPROM_TYPE_4K
19+
break;
2220
default:
2321
ctx->r2 = 0x00;
22+
break;
2423
}
2524
}
2625

@@ -34,9 +33,6 @@ extern "C" void osEepromWrite_recomp(uint8_t* rdram, recomp_context* ctx) {
3433
gpr buffer = ctx->r6;
3534
int32_t nbytes = eeprom_block_size;
3635

37-
assert(!(nbytes & 7));
38-
assert(eep_address * eeprom_block_size + nbytes <= eep16_size);
39-
4036
save_write(rdram, buffer, eep_address * eeprom_block_size, nbytes);
4137

4238
ctx->r2 = 0;
@@ -52,8 +48,7 @@ extern "C" void osEepromLongWrite_recomp(uint8_t* rdram, recomp_context* ctx) {
5248
gpr buffer = ctx->r6;
5349
int32_t nbytes = ctx->r7;
5450

55-
assert(!(nbytes & 7));
56-
assert(eep_address * eeprom_block_size + nbytes <= eep16_size);
51+
assert((nbytes % eeprom_block_size) == 0);
5752

5853
save_write(rdram, buffer, eep_address * eeprom_block_size, nbytes);
5954

@@ -70,9 +65,6 @@ extern "C" void osEepromRead_recomp(uint8_t* rdram, recomp_context* ctx) {
7065
gpr buffer = ctx->r6;
7166
int32_t nbytes = eeprom_block_size;
7267

73-
assert(!(nbytes & 7));
74-
assert(eep_address * eeprom_block_size + nbytes <= eep16_size);
75-
7668
save_read(rdram, buffer, eep_address * eeprom_block_size, nbytes);
7769

7870
ctx->r2 = 0;
@@ -88,8 +80,7 @@ extern "C" void osEepromLongRead_recomp(uint8_t* rdram, recomp_context* ctx) {
8880
gpr buffer = ctx->r6;
8981
int32_t nbytes = ctx->r7;
9082

91-
assert(!(nbytes & 7));
92-
assert(eep_address * eeprom_block_size + nbytes <= eep16_size);
83+
assert((nbytes % eeprom_block_size) == 0);
9384

9485
save_read(rdram, buffer, eep_address * eeprom_block_size, nbytes);
9586

0 commit comments

Comments
 (0)