42bs Posted March 24, 2022 Share Posted March 24, 2022 I tried to use a GPUOBJECT w/o enabling the interrupt. This works in VJ 2.1.3 but it does not seem to work on real hardware. I use GPUOBJECTs with JagTris with interrupt. Anyone tried it also w/o interrupt enabling? Quote Link to comment Share on other sites More sharing options...
SCPCD Posted March 24, 2022 Share Posted March 24, 2022 The Object Processor is not aware of the interrupts enabled (or not) of the GPU : It works as a separate component, and so, the GPUObject will pause the ObjectProcessor and wait for a OBF write, wathever the GPU configuration. 1 Quote Link to comment Share on other sites More sharing options...
42bs Posted March 24, 2022 Author Share Posted March 24, 2022 From what I see, the interrupt is not latched. I have a GPUOBJECT at the end of the screen (by using BRANCH objects) and clear the latch before releasing the OP. But the bit does not get set. I will try other interrupts. Quote Link to comment Share on other sites More sharing options...
SCPCD Posted March 24, 2022 Share Posted March 24, 2022 Indeed : Latches bit are not setted if the Interrupt bit is not enabled. You can't use Bit Banging to detect interrupts, if it's what you would like to do :) Quote Link to comment Share on other sites More sharing options...
42bs Posted March 24, 2022 Author Share Posted March 24, 2022 (edited) Yes, I did hope to get rid of the 68k. I made an intro where I just check the bitmap address to know when it is done, but this does not work for reloading the OP list. But a least it avoids flickering when I clear the screen for the next frame. But I have an idea to use the interrupt without spending to much space. Edited March 24, 2022 by 42bs Quote Link to comment Share on other sites More sharing options...
SCPCD Posted March 24, 2022 Share Posted March 24, 2022 Maybe you can use the OB[0-3] registers to detect a specific pattern that match the GPUObject/StopObject by setting the #data field of one or both. 1 1 Quote Link to comment Share on other sites More sharing options...
42bs Posted March 25, 2022 Author Share Posted March 25, 2022 The interrupt version works, but setting up the interrupt handling eats a lot of space and the GPUOBJECT bug (fireing for _every_ line) forces to add three branch objects. Quote Link to comment Share on other sites More sharing options...
JagMod Posted March 25, 2022 Share Posted March 25, 2022 (edited) This is how I build a list to handle the GPUOBJECT It only interrupts the GPU once per frame at the end of the display (VDE) I run this with the 68k shut off. p1..p8 addresses are phrases in memory p1 -------- p2 -------- GPU Int Obj p3 -------- STOP Obj p4 -------- Br = VDE (to GPU Int) p5 -------- Br < VDB (to Stop) p6 -------- Br > VDE (to Stop) p7 -------- Normal Bitmap (to Stop) p8 -------- OP points to p4 It looks shifted down by a phrase, this is so the bitmap object is on a double phrase alignment. Branches can fall through to next phrase if branch not taken. Edited March 25, 2022 by JagMod 2 Quote Link to comment Share on other sites More sharing options...
42bs Posted March 25, 2022 Author Share Posted March 25, 2022 Nice idea to jump 'backwards'. Nowhere is written that link needs always go forward. But for the intro I run out of memory, so I did P0 bitmap P2 branch VC < vde => P4 P3 GPU object P4 stop Since the OP stops on the GPU object, there is only one interrupt. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.