Posted October 10, 2024 by KanedaFr
OK, it took me 10 days but I have a working engine.
Champagne !
...and to finally to understand the high level of my failure!
A 68000 is at the heart of the Jaguar.
I saw it like the one on the Genny:
- logic code
- send data to VDP (video)
- send data to PSG and YM2612 (sound)
- read joypad (input)
On Jaguar, you can do it the same way.
But, in this case, you create a worst bottleneck than on the Genny, when you use 68000 to play music and not the dedicated Z80.
Worst ? yes!
On Jaguar, you have a DSP and a GPU dedicated to sound/input and video (+ blitter, but forget it for now, it's still a mystery for me)
These RISC CPU use a REAL 64 bits bus (not a 16/32 like the 68000) to read RAM.
We can say (even if it's not totally right) that they read/write data 2 to 4 times faster than the 68000.
So, like the Genny Z80, you best bet is to load a program on the DSP, another on the GPU and to use 68000 to only send command to them!
The problem ?
You can only use assembler to program them !
Do the maths :
Bye bye the 100+ sprites on screen
Bye bye 3D games
Bye bye the powerful feline
But there is a light in this dark shadow : JagStudio loads its Raptor methods on the GPU.
Right now, I don't know / understand How? exactly but i know objects handling is more or less optimized.
rMotion too, included in JagStudio, was a way to let the GPU handle sprites animations but it's deprecated.
While it's frustrating, my goal isn't to make a AAA game, a Jaguar Hit so, for now, I'll keep on what I know : making a game coded for 68000 with an easy to use SDK, full of hidden features I can't wait to discover.