esp32_nesemu icon indicating copy to clipboard operation
esp32_nesemu copied to clipboard

identifier "spi_flash_mmap_handle_t" is undefinedC/C++(20) and identifier "SPI_FLASH_MMAP_DATA" is undefinedC/C++(20)

Open Jailin opened this issue 2 years ago • 1 comments

No idea what to do.

char *osd_getromdata() { char *romdata; spi_flash_mmap_handle_t handle; esp_err_t err;

// Locate our target ROM partition where the file will be loaded
esp_partition_t *part = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, 0xFF, "rom");
if (part == 0)
	printf("Couldn't find rom partition!\n");

#ifndef SKIP_MENU // Open the file printf("Reading rom from %s\n", selectedRomFilename); FILE *rom = fopen(selectedRomFilename, "r"); long fileSize = -1; if (!rom) { printf("Could not read %s\n", selectedRomFilename); exit(1); }

// First figure out how large the file is
fseek(rom, 0L, SEEK_END);
fileSize = ftell(rom);
rewind(rom);
if (fileSize > part->size)
{
	printf("Rom is too large!  Limit is %dk; Rom file size is %dkb\n",
		   (int)(part->size / 1024),
		   (int)(fileSize / 1024));
	exit(1);
}

// Copy the file contents into EEPROM memory
char buffer[READ_BUFFER_SIZE];
int offset = 0;
while (fread(buffer, 1, READ_BUFFER_SIZE, rom) > 0)
{
	if ((offset % 4096) == 0)
		esp_partition_erase_range(part, offset, 4096);
	esp_partition_write(part, offset, buffer, READ_BUFFER_SIZE);
	offset += READ_BUFFER_SIZE;
}
fclose(rom);
// free(buffer);
printf("Loaded %d bytes into ROM memory\n", offset);

#else size_t fileSize = part->size; #endif

// Memory-map the ROM partition, which results in 'data' pointer changing to memory-mapped location
err = esp_partition_mmap(part, 0, fileSize, SPI_FLASH_MMAP_DATA, (const void **)&romdata, &handle);
if (err != ESP_OK)
	printf("Couldn't map rom partition!\n");
printf("Initialized. ROM@%p\n", romdata);

return (char *)romdata;

}

Jailin avatar Sep 21 '23 07:09 Jailin

No idea what to do.

char *osd_getromdata() { char *romdata; spi_flash_mmap_handle_t handle; esp_err_t err;

// Locate our target ROM partition where the file will be loaded
esp_partition_t *part = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, 0xFF, "rom");
if (part == 0)
	printf("Couldn't find rom partition!\n");

#ifndef SKIP_MENU // Open the file printf("Reading rom from %s\n", selectedRomFilename); FILE *rom = fopen(selectedRomFilename, "r"); long fileSize = -1; if (!rom) { printf("Could not read %s\n", selectedRomFilename); exit(1); }

// First figure out how large the file is
fseek(rom, 0L, SEEK_END);
fileSize = ftell(rom);
rewind(rom);
if (fileSize > part->size)
{
	printf("Rom is too large!  Limit is %dk; Rom file size is %dkb\n",
		   (int)(part->size / 1024),
		   (int)(fileSize / 1024));
	exit(1);
}

// Copy the file contents into EEPROM memory
char buffer[READ_BUFFER_SIZE];
int offset = 0;
while (fread(buffer, 1, READ_BUFFER_SIZE, rom) > 0)
{
	if ((offset % 4096) == 0)
		esp_partition_erase_range(part, offset, 4096);
	esp_partition_write(part, offset, buffer, READ_BUFFER_SIZE);
	offset += READ_BUFFER_SIZE;
}
fclose(rom);
// free(buffer);
printf("Loaded %d bytes into ROM memory\n", offset);

#else size_t fileSize = part->size; #endif

// Memory-map the ROM partition, which results in 'data' pointer changing to memory-mapped location
err = esp_partition_mmap(part, 0, fileSize, SPI_FLASH_MMAP_DATA, (const void **)&romdata, &handle);
if (err != ESP_OK)
	printf("Couldn't map rom partition!\n");
printf("Initialized. ROM@%p\n", romdata);

return (char *)romdata;

}

I'm continuing the project. I've already managed to compile it. I'm just making an error with images, but I'm almost solving it too. Follow the link: https://github.com/paulo101977/esp32_nesemu

paulo101977 avatar Sep 18 '24 00:09 paulo101977