Temper

From wiki.gp2x.org
Temper
Download (archive)
Developer Exophase
Version v0.70
Webpage http://exophase.devzero.co.uk/
Status Released and playable

Temper (Turbografx EMlator PEr Request) is a PC Engine/Turbo Grafx 16 emulator. The PCEngine system was released by NEC in Japan in 1987. The TurboGrafx-16 its North American counterpart, released by Hudson-Soft in 1989. This is the only PCEngine/TurboGrafx-16 emulator currently in active development. It is able to run many games at full speed at as low CPU speeds as 150mhz, making it the fastest PCEngine emulator released. It does not currently support CD-Rom games.

Contents

Installation

You must place temper.gpe and mmuhack.o in the same file. Roms can be placed anywhere on the SD card.

Controls

To Select a Rom

Up/Down
To move
B
To execute the rom

During a game

Vol Up+Vol Down
Go to In-Game menu
Vol +/-
To adjust the volume

In Config Screen

Up/Down
To move
L/R
Change setting
B
Select option
X
Return to game

Readme

Temper: Turbografx EMulator PEr Request

by Exophase (exophase@gmail.com)

-- Changelog --
Legend: @ - optimization, + - new feature, # - bug fix

v0.56: Small bugfix release

#  Fixed bug where idle loop eliminated branches would crash if preceded
   by a cli (fixes Super Star Soldier)
#  Fixed a bug in tsb/trb emulation (fixes score in Parasol Stars, some
   other glitches in other games)
#  Fixed previous ROM directory not being loaded on startup.
#  Hopefully fixed GP2X freeze when loading a game after saving global config
+# Added options to save local/global config for pad as well.

v0.55: Thanks to Notaz for some help he gave on how to fix some things.

@  Changed something in video rendering that affected memory performance,
   games with low priority sprites will be faster now.
@  Optimized video rendering a bit, small speed improvement.
@  Added some more idle loop patterns, matches 14 more games. As many as
   95 games are still unmatched, but the actual number in real idle loops
   is probably much lower. Probably over 70% of games are matched
   currently.
+# Changed the way config file saving works. Will no longer save the global
   config automatically every time the options menu is exited, but instead
   there's an option to exit + save global (in addition to exit + save
   local and exit w/o saving). Current ROM directory was moved to a separate
   config file, temper.cf2.
#  Fixed bug where current directory mmuhack.o was not used. This will fix
   speed problems for people that couldn't get it loaded (thanks notaz!)
#  Fixed bug where Temper didn't reclaim audio after it quit. This will
   prevent Temper from ruining sound after exiting and hanging on next
   startup (thanks notaz!)
#  Fixed bug that could cause Temper to crash on exit, possibly bringing
   down the entire GP2X (thanks notaz!)
#  Disallowed the joystick read from returning conflicting buttons for
   F200 users, although you can still simulate this by programming different
   GP2X buttons to return them. At least one game was getting confused by
   this.
+  Added support for loading bz2 compressed ROMs.

v0.5: First release


-- About --

Temper is a PC-Engine/Turbografx 16 emulator written for GP2X. I wrote it
because a lot of GP2X users were complaining that the other emulators
weren't fast enough or full featured enough. So, the primary aim of Temper
is to be fast enough while not sacrificing features or compatibility. It
was written completely from scratch, although some source and individuals
were consulted to fill in some technical gaps thanks to the lack of much
strong publicly available documentation of the platform.


-- Features --

Temper currently only emulates the core PC-Engine platform. The CD-ROM
add-ons and SuperGrafx platform are not emulated, but might be emulated
at a later date (maybe more if you can make me happy with developing on
GP2X). 6 button pad, arcade card, or any of those other addons aren't
supported either. This is just a basic PC-Engine platform emulator with
no frills.

It does have a lot of basic features and options you'd come to expect
from an emulator on GP2X.


-- Compatibility --

The PC version (which has been heavily tested) has very good compatibility,
with only a few games outright working. The only one I know of that will
fail to run entirely is Street Fighter 2, which is intentional. However, some
games have graphical glitches. Turning off "patch idle loops" might help
sometimes, otherwise leave it on because it'll make a lot of games much
faster. Of course there could be other things I've missed, who knows.

(If you try to run Street Fighter 2 it'll crash. If you read this readme
then there won't be a problem, right? ;P Consider this punishment for those
not reading it.)

I haven't tested the GP2X version that extensively, so if you find a problem
post about it on http://www.gp32x.com/board/ (look for the appropriate topic
first, there should be one made for Temper compatibility somewhere) and I'll
look into fixing it.


-- Performance --

It is written with a lot of ARM assembly which makes it a little faster
than the others. It could still be optimized a lot more, but at this point
it's basically "fast enough" in my opinion. I'll probably continue
optimizing it anyway, because that's what I do.

200MHz should hopefully be enough for all games, especially with fast RAM
timings on, but let me know if it isn't (on gp32x). You can try slower
speeds like 150MHz or lower, and you might get good results depending on
the game - lowering audio output rate helps a little. Turning off audio,
on the other hand, won't change much.

Currently there's no frameskip. I might add auto frameskip if there's a
demand for it (for playing at very low clockspeeds).


-- Source code --

Temper is currently not open source, yeah, I know I know. No, it's not
using any GPLed or otherwise licensed source inside it. If you really want
the source send me an e-mail at exophase@gmail.com and I might consider
giving it to you if you have a pressing reason. Basically, this emulator
is representing me and my programming work, and I don't want any releases
of it to stray from that.

These are the basic guidelines for how to get the source:

- If you just want it to see what I'm doing and offer advice then I have
  no problem giving it to anyone. This means not modifying it and
  releasing your own versions.

- If you want to port it I might give it to you, depending on how much
  I want to port it for that platform. If I've already ported it to that
  platform then you can consider me the official maintainer, and if I
  decide to work on that platform later I become the official maintainer,
  meaning that unless I want you to be you stop being so.

- Any changes you make to the core in ports should be reviewed with me
  first so I make sure you don't do anything that I don't think is good.

- Can't spread the source around without my permission, for obvious
  reasons.

- Naturally it'd be pretty difficult to make any of this legally binding
  so you'll have to convince me that you're on the level and willing to
  play by my guidlines.

- If you can't speak English at all then don't bother.


-- Controls --

Menu:
  Up/Down/Left/Right: Navigate cursor
  B: select
  X: cancel
  A: move up directory for file browser
  L: page up for file browser
  R: page down for file browser

Default ingame:
  Up/Down/Left/Right: dpad
  X: II
  A: I
  Y/Vol middle: menu
  Start: Run
  Select: Select
  L: Load state
  R: Save state
  Vol up/down: change volume

You can change the default controls in the menu.


-- Menu options --

The main menu options should be self explanatory.

The configure pad menu lets you change the pad mappings - on the right are
GP2X buttons and on the left are what they correspond to. These are what you
can map them to:

- PC-Engine controls
- Save/load state
- Volume up/down
- Enter menu
- Toggle fastforward
- I/II rapidfire (like the fastest setting on a TurboGrafx controller)

If you don't set a menu button then vol middle will be forced to it.

The options menu has the following options available:

- Show fps (how many frames are emulated per second, w/o fastforward should be
  at 60, use this to determine if the game isn't fullspeed)
- Enable sound (turning off sound won't improve performance)
- Audio rate (higher sounds better, lower is a little faster)
- Fast forward (run the game as fast as possible w/o throttling)
- Clock speed (underclock for better battery life but worse performance, or
  overclock for worse battery life and better performance - warning, your GP2X
  could freeze if you set it too high. It only goes up to 300, but most won't
  be able to get that high...)
- Fast RAM timings - will improve performance a little, but some GP2X's might
  not be able to handle them, especially at higher clock speeds. Might go well
  in improving performance at lower clock speeds though.
- Gamma percent - from 0 to 300. Makes the display appear brighter or darker.
- Patch idle loops - this will detect when the ROM is just waiting around for
  something to happen and will speed it up, note that currently only very, very
  simple idle loops are detected so only some percentage of games get a benefit
  from this (don't know how many but looks to be over half). This can possibly
  cause glitches or problems in games so if it does turn it off, otherwise
  leave it on.
- Snapshot in saves - this option will save a snapshot in savestates, which you
  can see if you're over the load state option in the main menu (and if there
  is one saved for that slot with a snapshot). This is off by default because
  it currently about triples the size of the savestates.
- Force USA encode - Some USA ROMs won't work w/o this, although most are
  auto-detected. The only one I know of is Legend of Hero Tonma, so use it
  for this game. This setting won't be saved in the global config file, so you
  should make a specific one for games that need it. WARNING - If you change
  this value then expect non-USA games to not load correctly anymore.

You can save a game specific config file here too. This will get loaded for
that game - if no game specific config file is found then a global config file
will be loaded. When you modify config settings you always modify the global
config file automatically.


-- Known Issues --

Some games have minor graphical glitches. PC-Engine video timing is really
finicky and that's probably what's causing them. Might be fixed in the future.

Street Fighter II doesn't work. If you try to load it it will probably crash
Temper. Supporting it right now would be taking a performance comprimise for
all games, which I don't want. I might support it later, but you should
probably just play the original arcade version instead (Genesis version should
be pretty good too). Even if it was supported there's no 6 button pad support
either so it wouldn't be very enjoyable.

Games that have a resolution wider than 320 will be cut off. Unfortunately it
isn't centered for the time being, but it will be in a later release. Only a
small handful of games actually do this, most are 256 wide.


-- Contact --

If you think you can be polite and thorough enough e-mail me at
exophase@gmail.com. I probably won't answer things addressed in this readme,
so you should read through it first. Don't ask for ROMs, don't ask for
release dates, and basically just use common sense.

If you don't have my AIM/MSN/contacts etc then don't bother trying to get
them. Sorry, but I'm kind of fed up with people giving me a hard time over
IM.


-- Credits & Thanks --

FluBBa & Loopy - For PCEAdvance, got a few ideas from it.
Mednafen, Ootake, Hu-Go - Source code cleared up some things
sarencele (Mednafen author), Charles MacDonald - thaks for additional info
Lordus - ideas and support
Terryn - tons of beta testing on PC version
notaz - some GP2X info
DaveC, zodttd, senquack, THB_ - beta testing. Thanks a ton.
Personal tools