memorymap: add texture_memory64
This commit is contained in:
parent
5c2b45b70d
commit
88b6fa9aae
@ -11,8 +11,10 @@ modem = 0xa0600000;
|
|||||||
aica = 0xa0700000;
|
aica = 0xa0700000;
|
||||||
aica_rtc = 0xa0710000;
|
aica_rtc = 0xa0710000;
|
||||||
|
|
||||||
|
system_boot_rom = 0xa0000000;
|
||||||
aica_wave_memory = 0xa0800000;
|
aica_wave_memory = 0xa0800000;
|
||||||
texture_memory = 0xa5000000;
|
texture_memory64 = 0xa4000000;
|
||||||
|
texture_memory32 = 0xa5000000;
|
||||||
system_memory = 0xac000000;
|
system_memory = 0xac000000;
|
||||||
ta_fifo_polygon_converter = 0x10000000;
|
ta_fifo_polygon_converter = 0x10000000;
|
||||||
ta_fifo_yuv_converter = 0x10800000;
|
ta_fifo_yuv_converter = 0x10800000;
|
||||||
|
@ -142,7 +142,7 @@ uint32_t transform(uint32_t * ta_parameter_buf, const char * s, const uint32_t l
|
|||||||
|
|
||||||
void init_texture_memory(const struct opb_size& opb_size)
|
void init_texture_memory(const struct opb_size& opb_size)
|
||||||
{
|
{
|
||||||
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
|
||||||
|
|
||||||
background_parameter(mem->background);
|
background_parameter(mem->background);
|
||||||
|
|
||||||
@ -172,8 +172,8 @@ inline void inflate_character(const uint8_t * src, const uint8_t c)
|
|||||||
//serial::character('\n');
|
//serial::character('\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
|
||||||
auto texture = reinterpret_cast<uint32_t *>(mem->texture);
|
auto texture = reinterpret_cast<volatile uint32_t *>(mem->texture);
|
||||||
|
|
||||||
uint32_t offset = 8 * 8 * character_index;
|
uint32_t offset = 8 * 8 * character_index;
|
||||||
union {
|
union {
|
||||||
|
@ -77,7 +77,7 @@ uint32_t transform(uint32_t * ta_parameter_buf,
|
|||||||
|
|
||||||
void init_texture_memory(const struct opb_size& opb_size)
|
void init_texture_memory(const struct opb_size& opb_size)
|
||||||
{
|
{
|
||||||
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
|
||||||
|
|
||||||
background_parameter(mem->background);
|
background_parameter(mem->background);
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ void copy_macaw_texture()
|
|||||||
{
|
{
|
||||||
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
||||||
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
||||||
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
|
||||||
for (uint32_t px = 0; px < size / 3; px++) {
|
for (uint32_t px = 0; px < size / 3; px++) {
|
||||||
uint8_t r = src[px * 3 + 0];
|
uint8_t r = src[px * 3 + 0];
|
||||||
uint8_t g = src[px * 3 + 1];
|
uint8_t g = src[px * 3 + 1];
|
||||||
|
@ -109,7 +109,7 @@ void transform(ta_parameter_writer& parameter,
|
|||||||
|
|
||||||
void init_texture_memory(const struct opb_size& opb_size)
|
void init_texture_memory(const struct opb_size& opb_size)
|
||||||
{
|
{
|
||||||
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
|
||||||
|
|
||||||
background_parameter(mem->background);
|
background_parameter(mem->background);
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ void copy_macaw_texture()
|
|||||||
{
|
{
|
||||||
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
||||||
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
||||||
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
|
||||||
for (uint32_t px = 0; px < size / 3; px++) {
|
for (uint32_t px = 0; px < size / 3; px++) {
|
||||||
uint8_t r = src[px * 3 + 0];
|
uint8_t r = src[px * 3 + 0];
|
||||||
uint8_t g = src[px * 3 + 1];
|
uint8_t g = src[px * 3 + 1];
|
||||||
|
@ -84,7 +84,7 @@ uint32_t transform(uint32_t * ta_parameter_buf,
|
|||||||
|
|
||||||
void init_texture_memory(uint32_t render_passes)
|
void init_texture_memory(uint32_t render_passes)
|
||||||
{
|
{
|
||||||
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
|
||||||
|
|
||||||
background_parameter(mem->background);
|
background_parameter(mem->background);
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ void main()
|
|||||||
|
|
||||||
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
||||||
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
||||||
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
|
||||||
for (uint32_t px = 0; px < size / 3; px++) {
|
for (uint32_t px = 0; px < size / 3; px++) {
|
||||||
uint8_t r = src[px * 3 + 0];
|
uint8_t r = src[px * 3 + 0];
|
||||||
uint8_t g = src[px * 3 + 1];
|
uint8_t g = src[px * 3 + 1];
|
||||||
|
@ -82,7 +82,7 @@ uint32_t transform(uint32_t * ta_parameter_buf,
|
|||||||
|
|
||||||
void init_texture_memory(const struct opb_size& opb_size)
|
void init_texture_memory(const struct opb_size& opb_size)
|
||||||
{
|
{
|
||||||
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
|
||||||
|
|
||||||
background_parameter(mem->background);
|
background_parameter(mem->background);
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ void main()
|
|||||||
|
|
||||||
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
||||||
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
||||||
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
|
||||||
|
|
||||||
uint16_t temp[size / 3];
|
uint16_t temp[size / 3];
|
||||||
for (uint32_t px = 0; px < size / 3; px++) {
|
for (uint32_t px = 0; px < size / 3; px++) {
|
||||||
|
@ -55,7 +55,7 @@ uint32_t transform(uint32_t * ta_parameter_buf)
|
|||||||
|
|
||||||
void init_texture_memory(const struct opb_size& opb_size)
|
void init_texture_memory(const struct opb_size& opb_size)
|
||||||
{
|
{
|
||||||
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
|
||||||
|
|
||||||
background_parameter(mem->background);
|
background_parameter(mem->background);
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ uint32_t transform(uint32_t * ta_parameter_buf,
|
|||||||
|
|
||||||
void init_texture_memory(const struct opb_size& opb_size)
|
void init_texture_memory(const struct opb_size& opb_size)
|
||||||
{
|
{
|
||||||
volatile texture_memory_alloc * mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory32);
|
||||||
|
|
||||||
background_parameter(mem->background);
|
background_parameter(mem->background);
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ void main()
|
|||||||
|
|
||||||
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
auto src = reinterpret_cast<const uint8_t *>(&_binary_macaw_data_start);
|
||||||
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
auto size = reinterpret_cast<const uint32_t>(&_binary_macaw_data_size);
|
||||||
auto mem = reinterpret_cast<texture_memory_alloc *>(0xa400'0000);
|
auto mem = reinterpret_cast<volatile texture_memory_alloc *>(texture_memory64);
|
||||||
for (uint32_t px = 0; px < size / 3; px++) {
|
for (uint32_t px = 0; px < size / 3; px++) {
|
||||||
uint8_t r = src[px * 3 + 0];
|
uint8_t r = src[px * 3 + 0];
|
||||||
uint8_t g = src[px * 3 + 1];
|
uint8_t g = src[px * 3 + 1];
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
extern volatile uint32_t system_boot_rom[0x200000] __asm("system_boot_rom");
|
extern volatile uint32_t system_boot_rom[0x200000] __asm("system_boot_rom");
|
||||||
extern volatile uint32_t aica_wave_memory[0x200000] __asm("aica_wave_memory");
|
extern volatile uint32_t aica_wave_memory[0x200000] __asm("aica_wave_memory");
|
||||||
extern volatile uint32_t texture_memory[0x800000] __asm("texture_memory");
|
extern volatile uint32_t texture_memory64[0x800000] __asm("texture_memory64");
|
||||||
|
extern volatile uint32_t texture_memory32[0x800000] __asm("texture_memory32");
|
||||||
extern volatile uint32_t system_memory[0x1000000] __asm("system_memory");
|
extern volatile uint32_t system_memory[0x1000000] __asm("system_memory");
|
||||||
extern volatile uint32_t ta_fifo_polygon_converter[0x800000] __asm("ta_fifo_polygon_converter");
|
extern volatile uint32_t ta_fifo_polygon_converter[0x800000] __asm("ta_fifo_polygon_converter");
|
||||||
extern volatile uint32_t ta_fifo_yuv_converter[0x800000] __asm("ta_fifo_yuv_converter");
|
extern volatile uint32_t ta_fifo_yuv_converter[0x800000] __asm("ta_fifo_yuv_converter");
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
"0","0x01000000","0x01FFFFFF","External Device","16MB",,
|
"0","0x01000000","0x01FFFFFF","External Device","16MB",,
|
||||||
"0","0x02000000","0x03FFFFFF","Mirror of 0x00000000 - 0x1FFFFFFF","32MB",,
|
"0","0x02000000","0x03FFFFFF","Mirror of 0x00000000 - 0x1FFFFFFF","32MB",,
|
||||||
,,,,,,
|
,,,,,,
|
||||||
"1","0x04000000","0x04FFFFFF","Texture memory 64bit access","8MB",,
|
"1","0x04000000","0x04FFFFFF","Texture memory 64bit access","8MB",,"texture_memory64"
|
||||||
"1","0x05000000","0x05FFFFFF","Texture memory 32bit access","8MB",,"texture_memory"
|
"1","0x05000000","0x05FFFFFF","Texture memory 32bit access","8MB",,"texture_memory32"
|
||||||
"1","0x06000000","0x06FFFFFF","Mirror of 0x04000000 - 0x06FFFFFF","32MB",,
|
"1","0x06000000","0x06FFFFFF","Mirror of 0x04000000 - 0x06FFFFFF","32MB",,
|
||||||
,,,,,,
|
,,,,,,
|
||||||
"2","0x08000000","0x0bffffff","Unassigned","-",,
|
"2","0x08000000","0x0bffffff","Unassigned","-",,
|
||||||
|
|
Binary file not shown.
@ -58,7 +58,7 @@ static_assert(from_xy(0b000, 0b110) == 20);
|
|||||||
static_assert(from_xy(0b000, 0b111) == 21);
|
static_assert(from_xy(0b000, 0b111) == 21);
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void texture(T * dst, const T * src, const uint32_t width, const uint32_t height)
|
void texture(volatile T * dst, const T * src, const uint32_t width, const uint32_t height)
|
||||||
{
|
{
|
||||||
for (uint32_t y = 0; y < height; y++) {
|
for (uint32_t y = 0; y < height; y++) {
|
||||||
for (uint32_t x = 0; x < width; x++) {
|
for (uint32_t x = 0; x < width; x++) {
|
||||||
|
2
vga.cpp
2
vga.cpp
@ -146,7 +146,7 @@ void vga()
|
|||||||
|
|
||||||
void vga_fill_framebuffer()
|
void vga_fill_framebuffer()
|
||||||
{
|
{
|
||||||
volatile uint16_t * vram = reinterpret_cast<volatile uint16_t *>(texture_memory);
|
volatile uint16_t * vram = reinterpret_cast<volatile uint16_t *>(texture_memory32);
|
||||||
for (int y = 0; y < 480; y++) {
|
for (int y = 0; y < 480; y++) {
|
||||||
for (int x = 0; x < 640; x++) {
|
for (int x = 0; x < 640; x++) {
|
||||||
struct hsv hsv = {(y * 255) / 480, 255, 255};
|
struct hsv hsv = {(y * 255) / 480, 255, 255};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user