minifix test.vsh

This commit is contained in:
smea 2014-05-27 20:47:53 +02:00
parent 933c86b4b0
commit 2aae159782
6 changed files with 52 additions and 25 deletions

View File

@ -44,7 +44,7 @@ $(PROJECTNAME).bin: $(PROJECTNAME).elf
$(PROJECTNAME).elf: $(SHBINFILES) $(OFILES)
# $(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out build/crt0.o, $(OFILES)) -lctru -lc -lgcc
$(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out build/crt0.o, $(OFILES)) -g -lctru -lm -lc -lg
$(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out build/crt0.o, $(OFILES)) -g -lctru -lm
clean:
@rm -f build/*.o build/*.d

View File

@ -1,5 +1,7 @@
; make sure you update aemstro_as for this (27/05/14)
; setup constants
.const 5, 0.0, 1.0, 2.0, 3.0
.const 5, 0.0, 0.0, -0.99, 1.0
; setup outmap
.out o0, result.position
@ -14,22 +16,28 @@
;code
main:
; result.pos = mdlvMtx * in.pos
dp4 d40, d40, d00 (0x0)
dp4 d40, d41, d00 (0x1)
dp4 d40, d42, d00 (0x2)
mov d40, d25 (0x4)
; result.pos = projMtx * in.pos
dp4 d00, d44, d40 (0x0)
dp4 d00, d45, d40 (0x1)
dp4 d00, d46, d40 (0x2)
dp4 d00, d47, d40 (0x3)
; result.texcoord = const
mov d08, d25 (0x5)
mov d0C, d25 (0x5)
mov d10, d25 (0x5)
; result.color = in.pos
mov d04, d00 (0x5)
mov d1A, d00 (0x4)
mov d1A, d25 (0x3)
; tempreg = mdlvMtx * in.pos
dp4 d10, d40, d1A (0x0)
dp4 d10, d41, d1A (0x1)
dp4 d10, d42, d1A (0x2)
mov d10, d25 (0x3)
; result.pos = projMtx * tempreg
dp4 d00, d20, d10 (0x0)
dp4 d00, d21, d10 (0x1)
dp4 d00, d22, d10 (0x2)
dp4 d00, d23, d10 (0x3)
; result.texcoord = in.texcoord
mov d02, d01 (0x5)
mov d03, d25 (0x7)
mov d04, d25 (0x7)
; result.color = crappy lighting
dp3 d1A, d40, d02 (0x0)
dp3 d1A, d41, d02 (0x1)
dp3 d1A, d42, d02 (0x2)
dp4 d01, d00, d1A (0x6)
mov d01, d25 (0x3)
flush
end
endmain:
@ -39,8 +47,8 @@
.opdesc _y__, xyzw, xyzw ; 0x1
.opdesc __z_, xyzw, xyzw ; 0x2
.opdesc ___w, xyzw, xyzw ; 0x3
.opdesc ___w, wwww, wwww ; 0x4
.opdesc xyz_, xyzw, xyzw ; 0x4
.opdesc xyzw, xyzw, xyzw ; 0x5
.opdesc __z_, xyzw, xyzw ; 0x6
.opdesc ___w, xyzw, xyzw ; 0x7
.opdesc xyzw, xyzw, xyzw ; 0x8
.opdesc xyz_, xyzw, xyzw ; 0x6
.opdesc xyzw, yyyw, xyzw ; 0x7
.opdesc xyzw, wwww, wwww ; 0x8

View File

@ -10,12 +10,14 @@ Result GSPGPU_AcquireRight(Handle *handle, u8 flags);
Result GSPGPU_ReleaseRight(Handle *handle);
Result GSPGPU_SetLcdForceBlack(Handle *handle, u8 flags);
Result GSPGPU_FlushDataCache(Handle *handle, u8* adr, u32 size);
Result GSPGPU_InvalidateDataCache(Handle* handle, u8* adr, u32 size);
Result GSPGPU_WriteHWRegs(Handle *handle, u32 regAddr, u32* data, u8 size);
Result GSPGPU_WriteHWRegsWithMask(Handle* handle, u32 regAddr, u32* data, u8 datasize, u32* maskdata, u8 masksize);
Result GSPGPU_ReadHWRegs(Handle *handle, u32 regAddr, u32* data, u8 size);
Result GSPGPU_RegisterInterruptRelayQueue(Handle *handle, Handle eventHandle, u32 flags, Handle* outMemHandle, u8* threadID);
Result GSPGPU_UnregisterInterruptRelayQueue(Handle* handle);
Result GSPGPU_TriggerCmdReqQueue(Handle *handle);
Result GSPGPU_submitGxCommand(u32* sharedGspCmdBuf, u32 gxCommand[0x8], Handle* handle);
#endif

View File

@ -3,7 +3,7 @@
Result initSrv();
Result exitSrv();
Result srv_Initialize(Handle* handleptr);
Result srv_RegisterClient(Handle* handleptr);
Result srv_getServiceHandle(Handle* handleptr, Handle* out, char* server);
#endif

View File

@ -78,6 +78,23 @@ Result GSPGPU_FlushDataCache(Handle* handle, u8* adr, u32 size)
return cmdbuf[1];
}
Result GSPGPU_InvalidateDataCache(Handle* handle, u8* adr, u32 size)
{
if(!handle)handle=&gspGpuHandle;
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=0x90082; //request header code
cmdbuf[1]=(u32)adr;
cmdbuf[2]=size;
cmdbuf[3]=0x0;
cmdbuf[4]=0xffff8001;
Result ret=0;
if((ret=svc_sendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
Result GSPGPU_WriteHWRegs(Handle* handle, u32 regAddr, u32* data, u8 size)
{
if(!handle)handle=&gspGpuHandle;

View File

@ -11,7 +11,7 @@ Result initSrv()
{
Result ret=0;
if(svc_connectToPort(&srvHandle, "srv:"))return ret;
return srv_Initialize(&srvHandle);
return srv_RegisterClient(&srvHandle);
}
Result exitSrv()
@ -19,7 +19,7 @@ Result exitSrv()
if(srvHandle)svc_closeHandle(srvHandle);
}
Result srv_Initialize(Handle* handleptr)
Result srv_RegisterClient(Handle* handleptr)
{
if(!handleptr)handleptr=&srvHandle;
u32* cmdbuf=getThreadCommandBuffer();