Cool! That's the first PSX homebrew game with 3D polygon sprites that I've ever seen.
Unfortunately it's running rather slow on my old PC, even in 320pixel mode it seems to require a lot of unneccessary rendering. For example, in the "CAUSE YOU OBVIOUSLY SUCK!!!" screen, it's clearing the background thrice. From no$psx vram viewer:
Code: Select all
FillVram320x240 ;fill buffer by color black
Texpage
Rect656x496 ;draw monochrome black texture
Texpage
Rect640x480Semi ;draw monochrome semitransparent rectangle
I don't know if that's causing lag on real hardware, maybe it's only causing problems with emulators on older PCs.
isufje wrote:If your trying it out on real hardware, use the hardware mode 320x240. 640x480 don't work cause of the GPU slowdown problem. I've read somewhere that it's solvable, but I haven't given all my time and effort into fixing it yet. Honestly, I'm not sure if I can actually solve it, but I know it has something to do with the wrong framebuffer getting updated/ leaving the other frame buffer with the same image data.
Ah, I was already wondering how you got it working at 640x480 pixels, looked like magic

The issue is that you can have only ONE frame buffer at that resolution (guess you've meanwhile figured out that, too. Or, if you haven't already been aware of it: check no$psx vram viewer to see how your vram is organized).
I am not too sure if it would be possible to use 640x480 pixels for that game on real hardware. It would work if the PSX could do the whole rendering during Vblank (but I'd assume that the GPU isn't fast enough for that). Or render the image (from top down) in ahead of the cathode ray beam (maybe the GPU is fast enough for that). Or update only small VRAM snippets (eg. only sprites, would be a problem if the whole BG color changes).
And I came across a problem with my BIOS clone (ie. in no$psx, it's working only with the original Sony BIOS). The problem is that you are using this BIOS patch/hack (located at at 80010B68h and 8001B85Ch in the ISO from 20 Dec 2013):
Code: Select all
8C030474 mov r3,[200h+(9Dh*4)] ;\get ptr to A(9Dh) GetConf (done so,
00000000 nop ;/as there's no "GetA0Table" funtion)
94620000 movh r2,[r3+0h] ;lui msw ;\
84630004 movhs r3,[r3+4h] ;lw lsw+8 ; extract ptr to "boot_cnf_values"
00021400 shl r2,10h ;msw*10000h ; (from first 2 opcodes of GetConf)
2442FFF8 sub r2,8h ;undo +8 ;
00431021 add r2,r3 ;lsw ;/
AC450000 mov [r2+0h],r5 ;num_TCB ;\set num_EvCB,num_TCB,stacktop
AC440004 mov [r2+4h],r4 ;num_EvCB ; (unlike A(9Ch) SetConf, without
03E00008 ret ; actually reallocting anything)
AC460008 +mov [r2+8h],r6 ;stacktop ;/
Which is adding one more hack to the list of known patches
http://nocash.emubase.de/psx-spx.htm#biospatches - I was hoping that people would stick with the existing patches, trying to support that patches is bit like fighting windmills.
Anyways, I was wondering why you are doing that? Is it something to patch improper values in .EXE headers manually? And is it your own invention, or is something implemented in official libraries? I've never seen that patch in retail games yet though.
Shadow wrote:your game does not have auto or even manual region selection in the exe's! You should add it into the boot sequence before anything gets drawn. On my TV, since it is forced to NTSC, my V-HOLD is off and I can't adjust it on it so I get a flickering image which I cant play on.
For auto selection, best would be using the CDROM region test command (19h,22h), if it does return INT3("for Europe") then you can be sure that the user is having a PAL console (and thus expect that it's used with a PAL TV Set). For anything other regions I would default to NTSC (including multi-region Yaroze consoles). Normally, any semi-modern PAL TVs should be able display 60Hz NTSC pictures anyways (bigger issue is that unmodded PSX consoles are producing incorrect colors if the TV region is wrong).
Oh, and in the menues: It would be nice if it would also accept the X-button, alternately to pressing the START-button!