Skip to content

Commit

Permalink
Use t2k.exe instead of PT.exe for running the game
Browse files Browse the repository at this point in the history
  • Loading branch information
mwenge committed Jun 13, 2021
1 parent 23118a7 commit 055ec86
Show file tree
Hide file tree
Showing 5 changed files with 278 additions and 6 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ cartridge: t2000.abs
echo "602bc9953d3737b1ba52b2a0d9932f7c t2k.rom" | md5sum -c

run: cartridge
wine ./utils/PT.EXE t2k.rom
wine ./utils/t2k.exe t2k.rom

clean:
-rm src/bin/*.o
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ This will create a file `t2k.rom`. You can run this as follows using `virtual-ja
virtual-jaguar t2k.rom
```

For an optimal Tempest 2000 experience you should run the game in 'Project
Tempest' a Jaguar emulator specifically optimized for Tempest 2000. Project
Tempest is available in the `utils` folder as `PT.exe`. To use it run the
following at the command line, select File->Open Rom and load `t2k.rom`:
For an optimal Tempest 2000 experience you should run the game in 'Tempest
2k' a Jaguar emulator specifically optimized for Tempest 2000.
Tempest 2K is available in the `utils` folder as `t2k.exe`. To use it run the
following at the command line:
```sh
wine ./utils/PT.EXE
wine ./utils/t2k.exe t2k.rom
```
Binary file removed utils/PT.exe
Binary file not shown.
Binary file added utils/t2k.exe
Binary file not shown.
272 changes: 272 additions & 0 deletions utils/t2kreadme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,272 @@
Jaguar Tempest 2000 Emulator

(approximate)
Minimum Requirements: 500MHz or greater (should work with throttle)
Recommended Requirements: 1GHz or greater.
For games other than Tempest 2000, the faster the better...

DirectX 9 is required. Windows XP may or may not be required.

Starscream 680x0 emulation library by Neill Corlett
([email protected])

This software also makes use of the excellent LibPNG and Zlib, both
available at Sourceforge.

THIS EMULATOR IS PROVIDED WITH NO WARRANTY, INCLUDING IMPLIED WARRANTIES,
ETC. IT IS A BETA PRODUCT THAT IS KNOWN NOT TO BE THOROUGHLY DEBUGGED, AND
HAS PREVIOUSLY CONTAINED AT LEAST ONE BUG THAT CAN UNRECOVERABLY CRASH A
SYSTEM. YOU USE IT ENTIRELY AT YOUR OWN RISK.


Keys:
----

F1 - Fullscreen toggle
F3 - Enable Music device capture
F4 - Show Music Input
F6 - Load State
F7 - Save State
F11 - Throttle toggle
F12 - Screenshot
O - option
P - pause
Z/Ctrl - A
X/ALT - B
C/Space - C
Arrow keys
Numeric keypad (. is #)
Q - three-fingered salute (used on the flashing CD with ?) to engage VLM
Esc - Quit

VLM: press Z (button A) twice to enter program mode, press O to engage
user programmable mode, then the numeric pad or numbers: first press is
bank, second press is effect in bank.

Joypads are supported.

Mouse-as-spinner mode is only loosely tested and probably not well
calibrated. Pause hits both pause keys so can be used to enable spinner
mode in game. Note that if spinner mode is enabled it is saved in the
EEPROM.





The game defaults to unthrottled operation, in which it assumes the blitter
and GPU have infinite speed. This makes Tempest 2000 run at 60fps at all
times. Throttling will take GPU and blitter into account and run more
realistically as in the real hardware. This also reduces the load on the host
CPU and will probably be required for processors under about 1GHz.

MOST GAMES OTHER THAN T2K REQUIRE THROTTLED OPERATION

The latest versions use native sound rather than emulating the DSP under Tempest
2000. The cost of sound is well down under previous versions. Native sound can
be forced off from the menu. With throttling this should enable T2K to run even on
slow processors or in low CPU power states. It does not need to be manually disabled
on games other than Tempest 2000.

The emulator can yield unneeeded CPU time to the operating system. This may
cause stuttering on CPU's with dynamic clocking if the CPU ends up bouncing
between two power states. SpeedswitchXP is your friend.

Smoothing toggles between point sampling and bilinear interpolation filtering
of the upscale of the Jaguar screen. Select your preference accordingly for
chunky pixels or Telly-O-Vision.

EEPROM saves are placed in directory assigned in the options, which defaults to
the All Users Application Data directory (in theory, although they have been
sighted in the application directory, the rom directory, and frankly just about
anywhere else it feels like it).

In PAL mode (selected by adding -pal on the command line) you can see slightly
more of the web, but the 50Hz refresh rate will not look as smooth. The game
also feels very slightly different.

If you have an older DX7 card then you may find that the emulator's screen size
does not resize with the window; in this case you must use fullscreen mode. You
may find it doesn't work at all, although I hope that is no longer the case.

SAVE STATES ARE NOT COMPATIBLE BETWEEN VERSIONS.



VLM Music
---------

Old method - attach a WAV file. This has no level control.

Preferred now: select 'Music input is output' from the settings menu, which will
take the currently running sound output. If there is more than one sound capture
device in the system it will offer you a choice. You may also need to double-click
the speaker icon in the taskbar, select properties/recording and map the input to
Wave or Stereo Mix (or similar using the sound card's own control).

The level will need to be adjusted to make VLM's triggers work properly - VLM
is at it's most fascinating when the levels are well balanced, and it's
particularly important for music genres like rock which are rich across the
entire audio spectrum.

If you select 'Show music input' (F4) it will give a level graph, and the
input level scaling can be adjusted with the up and down keys while it is
displayed. Setting it so the peak red line tends to be around the blue guide
and rarely dramatically exceeds it should give reasonable results. You can
also use your music program's level control. This option works best on the
"Waiting for CD" screen - once VLM itself is running results will be less
consistent.

Another good option is to use Bank 3 effect 3 (swirling squares) - if this
is always very dark it's too quiet for VLM's internal triggers, while if it's
always extremely bright then it's probably too loud. A nice balance should give
excellent results.

VLM will happily eat up every emulated cycle most PC's can generate, and so you
may find either VLM or the music replay stuttering unless you have a very
high-spec machine. If this happens, turning on Throttle and Yield will usually
improve matters.



Known / Suspected Bugs:
----------------------

The game must be throttled to play the track bonus levels. Unless you like it tricky.

Yield mode is also frequently slightly drunken music mode.

EEPROM saving and loading has previously proved a bit less reliable than it should
be, but this should be fixed with the specific setting of the eeprom save
directory.

Throttled mode cannot throttle the blitter slower than one blit per frame.

Dialog boxes often do not appear if the game is in fullscreen mode. If you repeatedly
close it with escape and reopen then it will usually appear after a few tries. Yes,
D3D has a flag that fixes this. No, I can't get it to work.

Switching out of fullscreen mode used to crash some nvidia systems with a Blue
Screen Of Death (or the Windows XP equivalent of the Silent Reboot). It seems
that 0.05 has fixed this but users should still be aware of the issue.

The joystick button mapping isn't very clever. In particular, there is no keyboard
command to escape from it.



Kind of not bugs:
----------------

Windowed mode suffers tearing artifacts due to the lack of sync with vertical
retrace. Fullscreen should not have these, but may not be perfectly smooth if
the fullscreen refresh rate is not 60Hz or in PAL mode.



Version history
---------------

0.06: (Core)
Experimented with an alternate memory access method, which didn't help performance much
Halved timeslice sizes
Move CLUT to be a memory region rather than part of the chip
Compute buffer size and pixel aspect ratio accurately in the OP, pass to window system
Cleaned up CPU and RISC interrupt systems, added CPU stop object interrupt
Rewrote Tom PIT to the correct spec (and fixed the stall bug I found in it too)
Rewrote Jerry PIT to correct an awful inaccuracy. However, to get AvP sound right
I had to add a hack to multiply the rate by 4. I don't understand why, I don't
know where the bug is, and in particular I don't know if I should apply the same
hack to the Tom PIT as well.
Fixed a bug that was causing writes to the start of some memory regions to be misdirected
Rewrote OP towards optional line-granularity
Added option to disable DSP altogether
Added all DSP wavetables, or at least guesses at same
Hacked around a problem that was causing the 'superzapper recharge' sample not to appear in T2K. Also
hacked the 'gappy sample' issue by slowing the music replay rate down 2% in the native
sound routine
GPU/Risc fixes: truly embarassing bug with sat8, equally rubbish bug with move pc,
MMULT instruction, kick off small timeslice on all RISC starts to avoid race if the RISC
sets a status flag which the 68k then checks, possibly the largest bug in the history
of errors in RISC interrupts (which weren't saving flags), ADDQMOD instruction,
PACKUNPACK instruction, PC register, hidata register
OP bugfixes: don't infinite loop on zero vscale, abort if hit address zero, fully
clipped objects off left side fix, some colour transparency, RGB16 conversion
was incorrect, scaled objects needed signed height, 8-bit OP scaled objects,
improved horizontal scaling accuracy, added RGB24 mode
Blitter bugfixes: bit to pixel expansion bits were reversed bit order, 32bpp phrasemode
blits were using wrong address mask, moved srcshade inside transparency check, fixed
8-bit phrasemode blit alignment several times, added byte-to-phrase blits
Blitter improvements: added blitter A1 inc sign, added blitter Y inc, added 8-bit
srcshade, additive blits
(Debugger)
Track RISC history (some of these need compile switches)
Append register name comments to disasm output
Added help menu in debugger because I'm too stupid to remember my own commands
Tidied up some registers
Kill OP object option
(Windows)
Fixed fullscreen on certain widescreen machines
Connected OP screen width hook
Went up to W4 and fixed most of the additional warnings
Reversed left and right sound channels
Fixed the remaining bugs with fastcall and switched to it, for a small performance gain
Added joystick button configuration
(All)
Clean up headers, clearly define core/window system interface
0.05: (Core)
Blitter speed optimisations
RISC core speed optimisations
OP speed optimisations (contributed by Gary Liddon)
Screen capture support
Defender 2000 compatibility fixes (some contributed by David Bateman)
Native sound for T2K to avoid high DSP load
(Windows)
Rewrote keyboard system
Rewrote D3D fullscreen switch - should have fixed fullscreen change crash
Fixed D3D cards that support StretchRect but need no filter specified
Options dialog box for configuring controls and directories
Saves options into registry
Avoid window shrink with repeated restart or fullscreen switch
Made fullscreen mode select a wide ratio mode if desktop is in a widescreen mode
0.04: Fixed no joystick support
Added sound capture and level meter
More internal work for porting
0.03: Cleaned up fullscreen code a little
Cleared all fullscreen backbuffers at init
Added automatic resizing of window if too big for screen
Fixed (in theory) mono and 8-bit WAV files
Added joystick/joypad support
Internal code cleaning in preparation for Mac/Linux ports
0.02: Fixed bug with some video cards
0.01: First release




Rough compatibility list (only a few games tried):

Seem Playable:

Tempest 2000: The shaded web is not exactly matching up with the line web, and there
are sometimes thin stripy lines on horizontal left-of-centre segments.

VLM: bank 4 effects flicker with throttle enabled.

Defender 2000: Classic and Plus have no screen, although it sounds like the game is
running. 2000 mode mostly works but it looks like the 'assistant' ship is broken.

Trevor McFur In The Crescent Galaxy: White objects shoot black, near-invisible
bullets, which doesn't seem right.

Sensible Soccer: Looks fine, although I'm not sure what's going on with save/load.


Not playable:

Alien vs Predator: Graphical glitches. Marine mode broken. Marines do not shoot at player.

Doom: Panel is distorted. Game sticks as soon as you move.



0 comments on commit 055ec86

Please sign in to comment.