Jump to content
Jagware

Zerosquare

Administrators
  • Content count

    2,138
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Zerosquare


  1. They're chip-select lines, they only stay asserted during the duration of the memory access.

    In other words, you can't set them high or low, you only get a very short pulse when you access memory in the memory area associated with the GPIO pin.


  2. Unfortunately the answer is "no" to each question. But adding support for non-builtin parallel ports is not a lot of work.

    Which game do you want to dump? Unless it's a previously unknown beta, it's probably been dumped already ; you could download it and save you the trouble.


  3. Here's an adapter to use Atari ST (or compatible) joysticks/joypads on the Jaguar. The four directions of the joystick map to the Jaguar's D-pad, and the joystick button maps to the Jaguar's B button.

    This is not a standalone device, it is meant to be added inside a standard controller (it can probably work on a Pro controller with minor modifications, but I don't have one so I can't test it).
    All buttons of the controller remain functional whether or not there's a joystick plugged in.

    The circuit taps signals from the controller's 74HC244 chip ("Axx" arrows) and from the controller's cable ("Bxx" arrows).
    The dot on the 74HC244 package is next to pin #1 ; pins are numbered counter-clockwise.
    To identify the correct wires on the cable, use a continuity tester, since wire colors may be different from controller to controller.

    The parts you need are:
    - One 74HC244 or 74HCT244 integrated circuit
    - Five 10 kΩ ±5 % 0.25 W resistors
    - Five 1N4148 diodes
    - One 100 nF 25 V X7R capacitor
    - One 9 pin male D-sub connector

    st_joystick_adapter.png


  4. To switch back from interlaced to non-interlaced mode:

    Blindly restoring the values from the boot ROM into the video registers doesn't work reliably. Both HC and VC must be reset immediately before doing so, otherwise you have a chance of ending up in a state where you don't get VBLANK interrupts anymore.

     

    Here's the code:

    InitNonInterlacedMode:
        move.w        CONFIG, d0
        andi.w        #16, d0
        bne           InitNonInterlacedMode_60Hz
    InitNonInterlacedMode_50Hz:
        move.w        #0, HC  
        move.w        #0, VC   
        move.w        #$026F, VP  
        move.w        #$0265, VEB
        move.w        #$026A, VS
        move.w        #$0006, VEE
        move.w        #$0022, VBE
        move.w        #$0258, VBB
        move.w        #$0352, HP
        move.w        #$06D5, HS
        move.w        #$0313, HEQ
        move.w        #$0259, HVS
        move.w        #$06AF, HBB
        move.w        #$009E, HBE
        move.w        #$06A0, HDE
        move.w        #$00A6, HDB1
        move.w        #$00A6, HDB2
        move.w        #$002E, VDB        
        move.w        #$020E, VDE  
        bra         InitNonInterlacedMode_End
    InitNonInterlacedMode_60Hz:
        move.w        #0, HC  
        move.w        #0, VC  
        move.w        #$020B, VP
        move.w        #$01FF, VEB
        move.w        #$0205, VS
        move.w        #$0006, VEE
        move.w        #$0018, VBE
        move.w        #$01F4, VBB
        move.w        #$034C, HP
        move.w        #$06CD, HS
        move.w        #$0310, HEQ
        move.w        #$028B, HVS
        move.w        #$06B1, HBB
        move.w        #$007D, HBE
        move.w        #$06A0, HDE
        move.w        #$00A6, HDB1
        move.w        #$00A6, HDB2
        move.w        #$002E, VDB
        move.w        #$01F0, VDE
    InitNonInterlacedMode_End:

    For safety, you should disable 68K interrupts before running this code, to make sure it doesn't get interrupted.

    This code resets all video registers, so you should rerun your video init code afterwards to set VI, HDB1, HDB2, HDE, VDB and VDE properly for your game. VI is especially important: make sure its value is odd, otherwise you won't get any VBLANK interrupts anymore.


  5. I'm officially announcing the release of Alice's Mom's Rescue for the Jaguar CD !

    This is a puzzle / platformer game in the pure style of old school pixel art.

    The giant raven has captured Alice's mother.

    Help Alice save her mother through the 3 worlds and 25 levels!

    Change Alice's height by jumping on the magic mushrooms to get through the tiny spaces.

    But be aware that a small size will also affect Alice's physical abilities!

    Solve puzzles, beware of the evil cats, birds, bats & spikes, and find the right path to victory.

     

    The game is available here for the Jaguar CD !

    If you don't have a Jaguar CD, SkunkBoard (rev2&3) owners can play the game with the 6MB ROM of the game included on the CD !

    The PC Windows version of the game is also included on the CD !

    For people in the US, you can check this US store to save on the shipping: (available soon)http://console5.com/store/software/atari/jaguar-cd.html

    Video of the game:

    alice0.pngalice1.pngalice2.pngalice3.pngalice4.pngalice5.png

    • Like 1

  6. I just thought of something:

     

    Most CD homebrews are pretty small, so there's unused space on the disc. Even the largest ones are large mostly because of audio tracks, not code/gfx.

     

    What about filling the unused space with copies of the code/gfx? It could work that way:

    - there are N copies of your code/gfx on the disc

    - if a sector read fails, retry it a few times

    - if the error persists, seek to the next copy and try to read the sector from there

    - if it succeeds, continue loading from that copy (don't seek back to the original copy)

    - if it still fails after a few retries, go to the next copy (or back to the first one if you reached the last one)

     

    Maybe each copy could be in its own track or session. Padding could be used between copies to make sure they are spread far enough on the disc.

     

    I don't know if it can actually improve the reliability of JagCD loadings, but I think it could use a test :)

×