mirror of
https://github.com/n64dev/cen64.git
synced 2024-06-22 14:02:41 -04:00
Implement mapped SRAM accesses.
This commit is contained in:
parent
f7df75babc
commit
bb41f7208e
|
@ -94,6 +94,10 @@
|
|||
#define SP_REGS2_BASE_ADDRESS 0x04080000
|
||||
#define SP_REGS2_ADDRESS_LEN 0x00000008
|
||||
|
||||
// SRAM.
|
||||
#define SRAM_BASE_ADDRESS 0x08000000
|
||||
#define SRAM_ADDRESS_LEN 0x0801FFFF
|
||||
|
||||
// Video interface registers.
|
||||
#define VI_REGS_BASE_ADDRESS 0x04400000
|
||||
#define VI_REGS_ADDRESS_LEN 0x00000038
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include "vr4300/cpu.h"
|
||||
#include "vr4300/interface.h"
|
||||
|
||||
#define NUM_MAPPINGS 16
|
||||
#define NUM_MAPPINGS 17
|
||||
|
||||
struct bus_controller_mapping {
|
||||
memory_rd_function read;
|
||||
|
@ -56,6 +56,7 @@ int bus_init(struct bus_controller *bus) {
|
|||
{read_rdram_regs, write_rdram_regs, RDRAM_REGS_BASE_ADDRESS, RDRAM_REGS_ADDRESS_LEN},
|
||||
{read_sp_regs2, write_sp_regs2, SP_REGS2_BASE_ADDRESS, SP_REGS2_ADDRESS_LEN},
|
||||
{read_sp_mem, write_sp_mem, SP_MEM_BASE_ADDRESS, SP_MEM_ADDRESS_LEN},
|
||||
{read_sram, write_sram, SRAM_BASE_ADDRESS, SRAM_ADDRESS_LEN},
|
||||
};
|
||||
|
||||
void *instances[NUM_MAPPINGS] = {
|
||||
|
@ -76,7 +77,8 @@ int bus_init(struct bus_controller *bus) {
|
|||
bus->si,
|
||||
bus->ri,
|
||||
bus->rsp,
|
||||
bus->rsp
|
||||
bus->rsp,
|
||||
bus->pi
|
||||
};
|
||||
|
||||
create_memory_map(&bus->map);
|
||||
|
|
|
@ -42,7 +42,7 @@ struct memory_map_node {
|
|||
};
|
||||
|
||||
struct memory_map {
|
||||
struct memory_map_node mappings[18];
|
||||
struct memory_map_node mappings[19];
|
||||
|
||||
struct memory_map_node *nil;
|
||||
struct memory_map_node *root;
|
||||
|
|
|
@ -321,3 +321,16 @@ int write_flashram(void *opaque, uint32_t address, uint32_t word, uint32_t dqm)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Mapped read of SRAM
|
||||
int read_sram(void *opaque, uint32_t address, uint32_t *word) {
|
||||
fprintf(stderr, "SRAM read\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Mapped write of SRAM
|
||||
int write_sram(void *opaque, uint32_t address, uint32_t word, uint32_t dqm) {
|
||||
fprintf(stderr, "SRAM write\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -76,8 +76,11 @@ int read_cart_rom(void *opaque, uint32_t address, uint32_t *word);
|
|||
int read_pi_regs(void *opaque, uint32_t address, uint32_t *word);
|
||||
int write_cart_rom(void *opaque, uint32_t address, uint32_t word, uint32_t dqm);
|
||||
int write_pi_regs(void *opaque, uint32_t address, uint32_t word, uint32_t dqm);
|
||||
|
||||
int read_flashram(void *opaque, uint32_t address, uint32_t *word);
|
||||
int write_flashram(void *opaque, uint32_t address, uint32_t word, uint32_t dqm);
|
||||
int read_sram(void *opaque, uint32_t address, uint32_t *word);
|
||||
int write_sram(void *opaque, uint32_t address, uint32_t word, uint32_t dqm);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue