more rodata work

This commit is contained in:
RevoSucks
2023-08-04 13:11:12 -04:00
parent 0c3b3131ff
commit b29a25d7a4
5 changed files with 112 additions and 37 deletions

View File

@@ -41,14 +41,14 @@ typedef struct {
} __LOCTime; // size = 0x6
/* libleo conversion tables */
extern const u8 LEOBYTE_TBL1[];
extern const u16 LEOBYTE_TBL2[];
extern const u8 LEOBYTE_TBL1[9];
extern const u16 LEOBYTE_TBL2[9];
extern const u16 LEOVZONE_TBL[][0x10];
extern const u16 LEOZONE_SCYL_TBL[];
extern const u16 LEOZONE_SCYL_TBL[16];
extern const u8 LEOVZONE_PZONEHD_TBL[][0x10];
extern const u16 LEOZONE_OUTERCYL_TBL[];
extern const u16 LEORAM_START_LBA[];
extern const s32 LEORAM_BYTE[];
extern const u16 LEOZONE_OUTERCYL_TBL[8];
extern const u16 LEORAM_START_LBA[7];
extern const s32 LEORAM_BYTE[7];
/* Memory Map */
#define LEO_BASE_REG 0x05000000

View File

@@ -386,13 +386,14 @@ segments:
- [0x7E640, .rodata, libleo/leocmdex]
- [0x7E6F0, rodata, rom_rodata_7E6F0]
- [0x7E700, .rodata, libleo/leomecha]
- [0x7E770, bin, rom_rodata_7E770] # todo
- [0x7E950, bin, rom_rodata_7E950] # todo
- [0x7ED70, bin, rom_rodata_7ED70] # todo
- [0x7E770, .rodata, libleo/leo_tbl]
- [0x7E950, rodata, rom_rodata_7E950]
- [0x7ED50, .rodata, libleo/leoc2ecc]
- [0x7ED70, .rodata, libleo/leomseq_tbl]
- [0x7EDF0, .rodata, libleo/leotimer]
- [0x7EE10, bin, rom_rodata_7EE10] # todo
- [0x7EE10, rodata, rom_rodata_7EE10]
- [0x7EE90, .rodata, libultra/gu/sinf]
- [0x7EEE0, bin, rom_rodata_7EEE0] # todo
- [0x7EEE0, rodata, rom_rodata_7EEE0]
- [0x7EF30, .rodata, libultra/al/reverb]
- [0x7EF60, .rodata, libultra/gu/perspective]
- [0x7EF70, .rodata, libultra/io/devmgr]

100
src/libleo/leo_tbl.c Normal file
View File

@@ -0,0 +1,100 @@
#include <ultra64.h>
#include <leo.h>
#include "libleo/internal.h"
// file of magic tables used for libleo.
// Firmware revision of libleo library.
const char LEOfirmware_rev[] = "B014A26";
const u8 LEOBYTE_TBL1[9] = {
0xE8,
0xD8,
0xD0,
0xC0,
0xB0,
0xA0,
0x90,
0x80,
0x70
};
const u16 LEOBYTE_TBL2[9] = {
0x4D08,
0x47B8,
0x4510,
0x3FC0,
0x3A70,
0x3520,
0x2FD0,
0x2A80,
0x2530
};
const u16 LEOVZONE_TBL[][0x10] = {
{ 0x0124, 0x0248, 0x035A, 0x047E, 0x05A2, 0x06B4, 0x07C6, 0x08D8, 0x09EA, 0x0AB6, 0x0B82, 0x0C94, 0x0DA6, 0x0EB8,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x06A2, 0x07C6, 0x08D8, 0x09EA, 0x0AFC, 0x0BC8, 0x0C94, 0x0DA6, 0x0EB8,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x08C6, 0x09EA, 0x0AFC, 0x0C0E, 0x0CDA, 0x0DA6, 0x0EB8,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x08B4, 0x09C6, 0x0AEA, 0x0C0E, 0x0D20, 0x0DEC, 0x0EB8,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x08B4, 0x09C6, 0x0AD8, 0x0BEA, 0x0D0E, 0x0E32, 0x0EFE,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x086E, 0x0980, 0x0A92, 0x0BA4, 0x0CB6, 0x0DC8, 0x0EEC,
0x1010, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x086E, 0x093A, 0x0A4C, 0x0B5E, 0x0C70, 0x0D82, 0x0E94,
0x0FB8, 0x10DC },
};
const u16 LEOZONE_SCYL_TBL[16] = {
0x0000,
0x009E,
0x013C,
0x01D1,
0x0266,
0x02FB,
0x0390,
0x0425,
0x0091,
0x012F,
0x01C4,
0x0259,
0x02EE,
0x0383,
0x0418,
0x048A
};
const u8 LEOVZONE_PZONEHD_TBL[][0x10] = {
{ 0x00, 0x01, 0x02, 0x09, 0x08, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A },
{ 0x00, 0x01, 0x02, 0x03, 0x0A, 0x09, 0x08, 0x04, 0x05, 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B },
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x0B, 0x0A, 0x09, 0x08, 0x05, 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x0C },
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x06, 0x07, 0x0F, 0x0E, 0x0D },
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x0F, 0x0E },
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x0F },
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08 }
};
const u16 LEOZONE_OUTERCYL_TBL[8] = { 0x0000, 0x009E, 0x013C, 0x01D1, 0x0266, 0x02FB, 0x0390, 0x0425 };
const u16 LEORAM_START_LBA[7] = {
0x05A2,
0x07C6,
0x09EA,
0x0C0E,
0x0E32,
0x1010,
0x10DC
};
const s32 LEORAM_BYTE[7] = {
0x024A9DC0,
0x01C226C0,
0x01450F00,
0x00D35680,
0x006CFD40,
0x001DA240,
0x00000000
};

View File

@@ -1,15 +1,6 @@
#include <ultra64.h>
#include "libleo/internal.h"
// static?
const u16 LEORAM_START_LBA[] = {
0x05A2, 0x07C6, 0x09EA, 0x0C0E, 0x0E32, 0x1010, 0x10DC,
};
// static?
const s32 LEORAM_BYTE[] = {
0x024A9DC0, 0x01C226C0, 0x01450F00, 0x00D35680, 0x006CFD40, 0x001DA240, 0x00000000,
};
void leoRd_capacity(void) {
if (LEOcur_command->header.control & LEO_CONTROL_WRT) {
LEOcur_command->data.readwrite.lba = LEORAM_START_LBA[LEOdisk_type] - 0x18;

View File

@@ -1,23 +1,6 @@
#include <ultra64.h>
#include "libleo/internal.h"
const u16 LEOVZONE_TBL[][0x10] = {
{ 0x0124, 0x0248, 0x035A, 0x047E, 0x05A2, 0x06B4, 0x07C6, 0x08D8, 0x09EA, 0x0AB6, 0x0B82, 0x0C94, 0x0DA6, 0x0EB8,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x06A2, 0x07C6, 0x08D8, 0x09EA, 0x0AFC, 0x0BC8, 0x0C94, 0x0DA6, 0x0EB8,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x08C6, 0x09EA, 0x0AFC, 0x0C0E, 0x0CDA, 0x0DA6, 0x0EB8,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x08B4, 0x09C6, 0x0AEA, 0x0C0E, 0x0D20, 0x0DEC, 0x0EB8,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x08B4, 0x09C6, 0x0AD8, 0x0BEA, 0x0D0E, 0x0E32, 0x0EFE,
0x0FCA, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x086E, 0x0980, 0x0A92, 0x0BA4, 0x0CB6, 0x0DC8, 0x0EEC,
0x1010, 0x10DC },
{ 0x0124, 0x0248, 0x035A, 0x046C, 0x057E, 0x0690, 0x07A2, 0x086E, 0x093A, 0x0A4C, 0x0B5E, 0x0C70, 0x0D82, 0x0E94,
0x0FB8, 0x10DC },
};
u16 leoLba_to_phys(u32 lba) {
u32 vzone;
u32 pzone;