naomi: Fix linux builds
This commit is contained in:
parent
13b2c4d8aa
commit
ca83428fa5
|
@ -13,6 +13,7 @@ u32 RomSize;
|
|||
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/mman.h>
|
||||
#endif
|
||||
|
||||
fd_t* RomCacheMap;
|
||||
|
@ -26,7 +27,7 @@ bool naomi_cart_LoadRom(char* file)
|
|||
printf("\nnullDC-Naomi rom loader v1.2\n");
|
||||
|
||||
size_t folder_pos = strlen(file) - 1;
|
||||
while (folder_pos>1 && file[folder_pos] != '\\')
|
||||
while (folder_pos>1 && (file[folder_pos] != '\\' && file[folder_pos] != '/'))
|
||||
folder_pos--;
|
||||
|
||||
folder_pos++;
|
||||
|
@ -99,10 +100,11 @@ bool naomi_cart_LoadRom(char* file)
|
|||
#if HOST_OS == OS_WINDOWS
|
||||
RomPtr = (u8*)VirtualAlloc(0, RomSize, MEM_RESERVE, PAGE_NOACCESS);
|
||||
#else
|
||||
RomPtr = (u8*)mmap(0, RomSize, PROT_NONE, MAP_PRIVATE, 0, 0);
|
||||
RomPtr = (u8*)mmap(0, RomSize, PROT_NONE, MAP_PRIVATE | MAP_ANON, -1, 0);
|
||||
#endif
|
||||
|
||||
verify(RomPtr != 0);
|
||||
verify(RomPtr != (void*)-1);
|
||||
|
||||
strcpy(t, file);
|
||||
|
||||
|
@ -242,4 +244,4 @@ void* naomi_cart_GetPtr(u32 offset, u32 size) {
|
|||
verify((offset + size) < RomSize);
|
||||
|
||||
return &RomPtr[offset];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -408,7 +408,7 @@ void recSh4_Init()
|
|||
bm_Init();
|
||||
bm_Reset();
|
||||
|
||||
verify(rcb_noffs(p_sh4rcb->fpcb) == -(FPCB_SIZE*sizeof(void*) + 0x40000));
|
||||
verify(rcb_noffs(p_sh4rcb->fpcb) == FPCB_OFFSET);
|
||||
|
||||
verify(rcb_noffs(p_sh4rcb->sq_buffer) == -512);
|
||||
|
||||
|
|
|
@ -307,11 +307,13 @@ typedef void DYNACALL TaListVoidFP(void* data);
|
|||
|
||||
#define FPCB_SIZE (RAM_SIZE/2)
|
||||
#define FPCB_MASK (FPCB_SIZE -1)
|
||||
|
||||
//#defeine FPCB_PAD 0x40000
|
||||
#define FPCB_PAD 0x100000
|
||||
#define FPCB_OFFSET (-(FPCB_SIZE*sizeof(void*) + FPCB_PAD))
|
||||
struct Sh4RCB
|
||||
{
|
||||
void* fpcb[FPCB_SIZE];
|
||||
u64 _pad[(0x40000-sizeof(Sh4Context)-64-sizeof(void*)*2)/8];
|
||||
u64 _pad[(FPCB_PAD-sizeof(Sh4Context)-64-sizeof(void*)*2)/8];
|
||||
TaListVoidFP* tacmd_voud; //*TODO* remove (not used)
|
||||
sqw_fp* do_sqw_nommu;
|
||||
u64 sq_buffer[64/8];
|
||||
|
@ -346,4 +348,4 @@ s32 rcb_poffs(T* ptr)
|
|||
|
||||
//Get an interface to sh4 interpreter
|
||||
void Get_Sh4Interpreter(sh4_if* cpu);
|
||||
void Get_Sh4Recompiler(sh4_if* cpu);
|
||||
void Get_Sh4Recompiler(sh4_if* cpu);
|
||||
|
|
|
@ -173,8 +173,8 @@ do_iter:
|
|||
HIDDEN(no_update)
|
||||
CSYM(no_update): @ next_pc _MUST_ be on r4 *R4 NOT R0 anymore*
|
||||
|
||||
#if RAM_SIZE == 33554432
|
||||
sub r2,r8,#67371008
|
||||
#if DC_PLATFORM == DC_PLATFORM_NAOMI
|
||||
sub r2,r8,#0x4100000
|
||||
ubfx r1,r4,#1,#24
|
||||
#else
|
||||
sub r2,r8,#33816576
|
||||
|
|
|
@ -409,11 +409,10 @@ u32 DynaRBI::Relink()
|
|||
{
|
||||
#ifdef CALLSTACK
|
||||
#error offset broken
|
||||
SUB(r2, r8, -FPCB_OFFSET);
|
||||
#if RAM_SIZE == 33554432
|
||||
SUB(r2, r8, 67371008);
|
||||
UBFX(r1, r4, 1, 24);
|
||||
#else
|
||||
SUB(r2, r8, 33816576);
|
||||
UBFX(r1, r4, 1, 23);
|
||||
#endif
|
||||
|
||||
|
@ -437,11 +436,10 @@ u32 DynaRBI::Relink()
|
|||
#if 1
|
||||
//this is faster
|
||||
//why ? (Icache ?)
|
||||
SUB(r2, r8, -FPCB_OFFSET);
|
||||
#if RAM_SIZE == 33554432
|
||||
SUB(r2, r8, 67371008);
|
||||
UBFX(r1, r4, 1, 24);
|
||||
#else
|
||||
SUB(r2, r8, 33816576);
|
||||
UBFX(r1, r4, 1, 23);
|
||||
#endif
|
||||
LDR(r15,r2,r1,Offset,true,S_LSL,2);
|
||||
|
@ -456,11 +454,11 @@ u32 DynaRBI::Relink()
|
|||
}
|
||||
else
|
||||
{
|
||||
SUB(r2, r8, -FPCB_OFFSET);
|
||||
|
||||
#if RAM_SIZE == 33554432
|
||||
SUB(r2, r8, 67371008);
|
||||
UBFX(r1, r4, 1, 24);
|
||||
#else
|
||||
SUB(r2, r8, 33816576);
|
||||
UBFX(r1, r4, 1, 23);
|
||||
#endif
|
||||
NOP();NOP(); //2
|
||||
|
|
Loading…
Reference in New Issue