Jump to content
Jagware

Matmook

Members
  • Content count

    650
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Matmook


  1. Since sergi requested it, here's an old source of mine that could be used as a basis for a Jaguar debugger, or anything that needs reliable bidirectional communication between a PC and a Jaguar. It's very rudimentary, because I was too lazy to finish it ;)

     

    MinDebug.zip

     

    I wanted to test this very interresting tool but I can not make it work. :blink:

     

    I managed to get the green screen (loading mindebug.jag at $ 4000) but I have not managed to load my binary using the following command : mindebug u foo.bin 4000

    I get a "Transfert Error" message.

     

    I must have missed something ... Is there something else to do ?


  2. :yes:

    The idea is to let the GPU make the new list using the "sprite struct list" (animation ...) in this case I need to copy "unchanged part" of the object :unsure: .

    In the other hand, job not done on gpu must be done using the 68k and the GPU is faster than the 68k so :wacko:

     

    I hope this method (x128 sprite for example) do not take too much GPU time ... I "just" want to manage my sprite list (adding, remove, "Z ording" ...) using the 68k.

     

    I don't know :unsure: ... let's try it ... :D

     

     

     

    I've not test scaled bitmap for the moment but this is a really important information ... I must make space for those object or place them in another room to loose less memory (since there should be less scaled bitmap than normal one in a game...)

     

    Thanks :lol:

     

     

    :yes::yes: It runs ... :D I can now add/remove sprite easily.

    I need to learn how to use scaled bitmap... :) Let's go !


  3. Look OK to me. There are probably ways to optimize this (only updating what's necessary instead of using "brute force"), but I wouldn't bother if your code runs in 1 VBL with the current method.

    :yes:

    The idea is to let the GPU make the new list using the "sprite struct list" (animation ...) in this case I need to copy "unchanged part" of the object :unsure: .

    In the other hand, job not done on gpu must be done using the 68k and the GPU is faster than the 68k so :wacko:

     

    I hope this method (x128 sprite for example) do not take too much GPU time ... I "just" want to manage my sprite list (adding, remove, "Z ording" ...) using the 68k.

     

    I don't know :unsure: ... let's try it ... :D

     

    Don't forget that sprite objects must be aligned on a 16-byte boundary, and scaled sprite objects on a 32-byte boundary. So you can't just add 4 or 6 to compute the address of the following object in the list, you have to round up too.

     

    I've not test scaled bitmap for the moment but this is a really important information ... I must make space for those object or place them in another room to loose less memory (since there should be less scaled bitmap than normal one in a game...)

     

    Thanks :lol:

     

     


  4. Hi,

     

    Rebuilding my GPU code from scratch because I now need to have a double object list... and have a clean code too (test + test + test == unreadable code :whistling: ).

    Here is the object list refresh mechanism I'm going to do... Don't know if this is a good method so your opinion are welcome :D

     

    Here is the context :

     

    Each "sprite" is defined in a structured array (Pseudo-Strange code) :

    Struct {

    Phrase1; // 1st bitmap phrase (YPOS, DATA,LINK...)

    Phrase2; // 2nd phrase (XPOS, FLAGS ,...)

    Phrase3; // scaled bitmap phrase

    PosX;

    PosY;

    Layer;

    Mode;

    ...

    } Sprite;

     

    Each Sprite include space for a copy of the whole object (4 LONG for bitmap object and 6 for scaled object).

     

    I used 2 different Object List (one currently displayed and one for modifications) :

    - Branch OBJECT (before display start-> Stop)

    - Branch OBJECT (after display end -> Stop)

    - Bitmap

    - Bitmap

    - ... many bitmap...

    - Stop

     

    I use 2 pointer for those Object List :

    @currentlist

    @worklist

     

    The OLP always use @currentlist for the display.

     

     

    * The GPU is set to build the new list on each VBL (via the 68k interrupt) :

    Use @worklist

    Jump over the 2 legacy branch objet (@worklist = @worklist + 4 LONG)

    For i in 0 to numsprite

    {

    load saved phrase from sprite struct (we must (at least) correct the LINK).

    compute next link (ie +4 or +6 depending of the type)

    change X, Y, zoom, ...

    save phrase to @worklist

    @worklist = @worklist + 4 LONG (or 6)

    }

    add stop object

    swap @worklist / @currentlist

    Set OLP use this new @worklist

    stop GPU.

     

    Is this a good method or not ?

     

     

     


  5. Congratulation Mbarreteau ! you write the 10000th post of Jagware :)

     

    :yes: :yes:

     

    Clap Clap Clap....

     

    :D:D:D:D

     

    Thanks, Thanks ...I do not expect to win ... :cry: ... sorry ... emotion.

    ...

    I want to thanks my mother, my producer, my keyboard and my cat how have supported me posting on this forum....

    ...

     

    :sweating::D

     


  6. In fact, the problem is more broad than that. The important thing is, unless the OS/loader program/etc. explicitly sets the RAM to a known value (e.g. the BSS sections in Atari programs are set to zero by the TOS),

     

    That's why loading some prog on my falcon took so much time ... Very Interesting !

     

     

    you should never assume anything about the contents. Even if nothing had been written there before, the contents of RAM chips at power-up are not zero, they are random.

     

    (In fact they're not truly random ; there is very often a repeating pattern which depends on the electrical implementation of the RAM cells)

     

     

    OOps, I've found in another post that Orion_ has allready done the job for Virtual Jaguar's bin file support : Virtual Jaguar Bjl Bin File Support

     

    So thanks a lot Orion :yes:


  7. I once used project tempest to develop until the day my source code was running perfectly on project tempest and absolutely not on my jaguar. and I had no idea why and was too far in the code to check where was the bug.

    I've got a sort of bug like this between Tempest and Jaguar.

    It was just (for my case) the fact that Tempest's memory is always clear while Jaguar's one is in random state upon startup ...

    maybe you can try Virtual Jaguar which is far more reliable on jaguar emulation, but still, this is not a good idea, since the jaguar emulators are far from reacting like a real jaguar

     

    I know this is not a good idea but since I don't have a BJL-Portable-Jaguar (Dream...) I must sometime use emulator to develop ..

     

    So I've try with Virtual Jaguar and :yes: :yes: :yes:!!

     

    So now I need to rebuild VJ to load .bin file instead of .jag

     

    Thanks :lol:


  8. Hi,

     

    Using CRY16 video mode, I'm currently trying to set the RMW bit on one of my sprite but this doesn't have the same behavior in Tempest and on my Jaguar-BJL...

     

    Tempest : my sprite disappear when RMW bit is set :huh:

    Jaguar-BJL : It works ! :yes:

     

    Is there a trick to make this mode running in tempest and Jag-BJL ? :wacko:

     

×