Shop OBEX P1 Docs P2 Docs Learn Events
Tempest 2000 for P2 — Parallax Forums

Tempest 2000 for P2

Here's something I've been working on: A semi-native P2 port of Tempest 2000, originally released in 1994 by Llamasoft for the Atari Jaguar. Available for P2 boards with at least 8MB RAM expansion (8 bit or wider bus recommended).

DOWNLOAD AND INSTRUCTIONS HERE: https://github.com/Wuerfel21/tempest2k

(Note: I've only tested building this on Linux, not sure if it works for other platforms - If in doubt, ask me for a binary)

Screenshots:

This is using a stripped down version of the 68000 emulation developed for MegaYume and NeoYume to run the main program code, but all GPU microcode and associated Blitter ops have been translated into P2ASM. The sound driver was created from scratch and handles more simultaneous sound effects than the original. Despite not doing any major optimizations, the performance is good, almost always running at 60 FPS (the Jaguar version often only manages 30).

Also, shout out to @rogloh and his multi-cog RAM drivers, which are being put to good use here.

More screenshots:



(Screenshots taken on P2EVAL+Rayslogic 96MB PSRAM board, VGA output into a Datapath VisionRGB E1)

Comments

  • evanhevanh Posts: 15,380

    Cool! I need to make the proper spinney wheel for it now.

  • There is support for rotary controllers in the code, just needs to be plumbed through.

  • evanhevanh Posts: 15,380
    edited 2024-07-10 21:50

    What is using right now? I assumed it was a mouse axis.

  • Just normal gamepad/keyboard arrow keys.

  • ke4pjwke4pjw Posts: 1,115

    Would this work with the P2-EC32MB?

  • Of course! Infact, that's what the default config file targets (with USB on pin 16 and VGA+audio on pin 24).

  • Wuerfel_21Wuerfel_21 Posts: 4,664
    edited 2024-07-12 18:33

    Also, I just pushed some commits that optimize certain µcodes that access image data from PSRAM. So if your board has low memory bandwidth (i.e. is not an EC32MB), certain parts may now be smoother (you can see this in the main menu background animation)

    Though really, the main gameplay was already plenty fast, so it's really just pedantic. And the lowest possible configuration 4bit+sysclk/3 doesn't work due to video glitches. Might want to fix that...

  • RaymanRayman Posts: 14,142

    This looks awesome @Wuerfel_21 , nice work. Can you remind me what P2 clock freq this runs at?

  • Same as MegaYume. The reason for this is that I just copied some video code across and it didn't need changing. It'd scale down to lower clock speeds well.

    You'll find that there's a pre-made config file for SimpleP2 boards. Seemed stable enough to me. EVAL with 24 or 96 board of course are supported, too.

  • RaymanRayman Posts: 14,142

    Just went to try it, but I'm a bit confused... This one is not like the others. Appears that you are compiling it on Linux?
    I'm guessing that FlexProp and Spin2Cpp must also be installed?

    Any chance you could post the .dat file and the .bix file for these configs?
    P2EVAL with Rayslogic 96MB board on pin 0
    P2EVAL with Rayslogic 24MB board on pin 48

    I'm still recovering from vacation too much to compile this myself right now...

  • Wuerfel_21Wuerfel_21 Posts: 4,664
    edited 2024-07-13 21:21

    @Rayman said:
    Just went to try it, but I'm a bit confused... This one is not like the others. Appears that you are compiling it on Linux?
    I'm guessing that FlexProp and Spin2Cpp must also be installed?

    It includes it's own spin2cpp/flexspin as a submodule. It already needs the RMAC/RLN tools to handle the 68k side of things, so I just added spin2cpp to that to reduce overall headache. I'm building on Linux. It probably can be gotten to work on windows, but if you're using 10/11, just enable WSL, that's idiot-proof.

    Any chance you could post the .dat file and the .bix file for these configs?
    P2EVAL with Rayslogic 96MB board on pin 0
    P2EVAL with Rayslogic 24MB board on pin 48

    You didn't specify, so I'm assuming USB on 16, VGA on 24, and using SD card FS. Also added EC32B and SimpleP2 BIX files, though I didn't smoketest those particular files.

    Note that the DAT file is the same regardless.

  • RaymanRayman Posts: 14,142

    Thanks! I'm looking forward to trying this out. The original Tempest was one of my favorites.... Maybe just behind Galaga? Hard to say...

    Had some sorta unique features like color vector display, right? And, spinner input.

    Might have to research spinner, depending on how addictive this is...

  • Cool! I used to work with Jeff Minter at VM Labs. Does he know about this?

  • Wuerfel_21Wuerfel_21 Posts: 4,664
    edited 2024-07-14 10:53

    Probably not. But that's an interesting connection!

  • RaymanRayman Posts: 14,142
    edited 2024-07-14 16:11

    Got it thanks. There's something coming in on terminal, but I seem to have wrong baud...

    The music sounds good. Not 100% my style, but the quality sounds good.

    Definitely need a spinner for this game. Thumb stick is OK, but not perfect. Scroll wheel on mouse might be interesting, but would probably give carpel tunnel...

    640 x 480 - 80K
  • Hmm, those are reporting as mice?

  • RaymanRayman Posts: 14,142

    Looks that way…

  • Hmm, though rather troublesomely, it seems these devices usually only have 2 buttons, T2K needs 3.

  • roglohrogloh Posts: 5,280
    edited 2024-07-15 02:20

    A while back I was able to get a rotary spinner sort of working with the updated usbnew code from macca & Wuerfel_21.

    Here were the original details and the change/hack I put in several posts later:

    https://forums.parallax.com/discussion/comment/1550636/#Comment_1550636
    https://forums.parallax.com/discussion/comment/1550695/#Comment_1550695

    But it was only for one button and one axis. So if this Tempest game needs multiple buttons, another controller would be required in parallel. Seems like it's probably a decent way to play so I'll need to give this Tempest port a try soon.

  • RaymanRayman Posts: 14,142

    Maybe pressing 2 buttons together at same time could be third button?

  • That obviously won't do

  • evanhevanh Posts: 15,380

    If I had the choice I'd remove USB from the circuit. Just connect the quadratures and buttons direct.

  • That's what I was thinking. Theres a quadrature count smart mode, so it'd be easy to program that in.

  • @evanh said:
    If I had the choice I'd remove USB from the circuit. Just connect the quadratures and buttons direct.

    Never seen this spinner thingy before but the first thing that came to mind:

  • evanhevanh Posts: 15,380

    That's way cheap for one of those!

  • hi
    Best I can find is double that for half the resolution (from the uk) https://www.ebay.co.uk/itm/395380522342
    Dave

Sign In or Register to comment.