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
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.
What is using right now? I assumed it was a mouse axis.
Just normal gamepad/keyboard arrow keys.
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).
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...
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.
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...
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.
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.
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?
Probably not. But that's an interesting connection!
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...
This looks like it might work:
https://thunderstickstudio.com/products/usb-spinner
https://www.amazon.com/GRS-USB-Button-Hole-Spinner/dp/B08HNB5933/ref=pd_lutyp_ci_mcx_mr_typ_d_d_sccl_4_2/136-5697297-2277417?
Hmm, those are reporting as mice?
Looks that way…
Hmm, though rather troublesomely, it seems these devices usually only have 2 buttons, T2K needs 3.
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.
Maybe pressing 2 buttons together at same time could be third button?
That obviously won't do
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.
Never seen this spinner thingy before but the first thing that came to mind:
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
Another one here, still two buttons:
https://www.ultimarc.com/trackballs-and-spinners/spinners/spintrak/?variation_id=67
This would give plenty of inputs...
https://www.ultimarc.com/control-interfaces/i-pacs/i-pac2/
This might be a cheaper route:
https://thunderstickstudio.com/products/12-in-1-interface-board