Wednesday, December 31, 2014

XMAME v1.0 for GCW-Zero

After a good year in development:


It wasn't quite ready for before Christmas but at least it made a 2014 release (only just).
There's certainly more work in all the little details than what you may think!

(Latest version is v1.3)

XMAME v1.3 splash screen

Konami's Xexex running on XMAME v1.3 (Mame 0.69)

Taito's Chase HQ running on XMAME v1.3 (Mame 0.69)

What is XMAME?

XMAME is a UNIX version of MAME optimized for the GCW-Zero handheld.
The main goal of XMAME is to provide an updated version (actually versions) of MAME which was something other than the ubiquitous MAME4ALL.

  • New games. 1000s of new games.
  • Updates for existing games. ie. adding sound where previously missing and new graphical effects.
  • Save state support for some games. Disclaimer: Some games, certainly not all!
  • Better frontend launcher.
As many MAME users have already noted, later versions do tend to get slower. This is true to a degree, and confirmed by MAME developer Aaron Giles, see his post.

XMAME v1.3 for GCW-Zero supports three versions:

MAME 0.37b16, 0.69 and 0.84.

Take careful note of those versions and understand that optimally you will need three sets of ROMs to play all the games that this release supports.

The good news is that you won't really need three sets.

XMAME v1.3 updates

* Added 32-bit color mode and support in drivers where required for high quality alpha blending screens (all versions).
* Updates to drivers using ALPHA BLEND modes. Games supporting ALPHA in v1.0 - v1.2 always ran in 16-bit mode. The user will now have the option of running in 16 or 32-bit color mode. 16-bit mode is faster, 32-bit mode is more accurate and has some extra effects. The default is 16-bit mode, you need to select the 32-bit before starting the game. This only applies to certain games (see those listed below).
* Fixed: Bucky O'Hare and COW-boys of Moo-Meesa (69 and 84)
* Fixed: Dragon Blaze, Strikers 1945 II, etc (69 and 84)
* Fixed: Taito F3 games (69 and 84).
* Fixed: Analog controls (84).
* Fixed: Analog controls now have correct defaults for rotated screen modes (all versions).
* "No sound" option now works (all versions).
* Fixed: Sega System16 games like Altered Beast and Alien Storm and Enduro Racer. Hooray! Long standing bug which was really annoying! (all versions).
* Fixed: XMAME frontend after adding/removing ROMs and using "START" to refresh cached list, wasn't calculating correct number of games available for each filter mode.
* Fixed: Multi32 games like Outrunners for 69 and 84.
* Fixed: Konami games using KONAMIGX hardware (ie.Mystic Warriors, Violent Storm, etc)  for 69 and 84.
* Fixed: Gaelco 3D games however there is still an issue (see "Future release") for 84.
* Fixed: Tecmo Raiga - Strato Fighter for 84.
* Fixed: The Game Room's Lethal Justice for 84.
* Fixed: Tecmo's Super Pinball Action for 84.
* Added: save-state controls for 84. Also fixes for 52 and 69.
* Added: speed-ups for Neo Geo for 52 only. Everything runs at 100% 60

Three versions of MAME?

Correct, the frontend not only lets you choose the game but also which version of MAME to run. There are also other frontend improvements including being able to filter the ROM lists, create favourites and snapshot image support.

So will I really need all those ROM sets?

Well of course not - unless you plan to try every single game. If you are, please contact me so perhaps you could do some testing for me ;)

The versions of MAME chosen were not random, many hours went into researching which versions would be best.

The final list of versions are a nice mix of earlier releases, with MAME 0.84 providing a large number of playable games. MAME 0.84 happens to be the same version that MAMEOX - MAME for the Xbox - was based on.

Basic Installation

Copy the xmame_1.2.opk installer to your apps folder, either internal storage or external SD card.

XMAME v1.2 can be installed to the GCW-Zero's internal 16GB storage or on an external SD card.

Once the installer has started you can choose the destination - either internal or external storage.

If you want to install to the external SD card but there is no option to do so from the installer, exit the installer, and try running the "reboot" icon under "settings" in Gmenu2X. Then try running the installer again. For some reason the GCW-Zero doesn't always mount the SD card successfully first time around.

Once the destination has been selected, wait a minute or two. When finished you will have a new icon under the emulators section called XMAME v1.2.

The installer can be deleted now as it is no longer required.

Important: Before you run XMAME, you will need to copy some ROMS into each of the "roms" directories for each version of XMAME installed.

Advanced Installation

Once the basic installation is complete, you can optionally make you own adjustments.
This may include:
  • Using symlinks to share ROM folders just like the "snap" directory in the basic install.
    By default  the install sets up three separate "roms" directories one for each version but as an alternative, you could use a single "roms" directory and use symlinks to share this directory between all versions of XMAME.
If you run into trouble, delete what you've done and follow the Basic Installation again.

How does the XMAME frontend and main executables work?

The XMAME frontend checks to see which versions of XMAME are installed. The directory structure should be as per the basic install for the frontend to function correctly
ie. /xmame/xmame69/xmame.SDL.69
The new frontend allows the user to switch versions of XMAME and select a game. The new frontend then sets the XMAMEROOT environment variable (see below) and starts the selected XMAME with the parameters chosen by the user.
The XMAME executables don't explicitly need the frontend, and can be run from a shell. Indeed during development this is the best and quickest way to test games.
Each of the main XMAME executables searches for directories ie. "roms" or "snap" in a directory defined by the XMAMEROOT environment variable. If this variable is not defined it is defined when starting XMAME as the current directory where the XMAME executable resides.

Credits (in no particular order)

  • The MAME developers.
  • The GCC developers.
  • Franxis for the original MAME for the GP32 and later MAME4ALL.
  • d_smagin for the cywin version of the GCW-Zero toolchain.
  • sparkymark79 for pestering me :)
  • hi-ban for testing and updated icons.
  • Justin for a GCW-Zero.
  • notaz for Cyclone and Pandora's SDL (yes, there is a Pandora version coming)

Sunday, September 28, 2014

Temper 0.81 for Dingoo Native v2.0

Temper is a "Turbo graphics EMulator PEr Request" originally written by Exophase - in other words a PC Engine emulator.
This release was ported by Slaanesh and works specifically for the Dingoo A320 under the native operating system.

Steam Hearts PC Engine CD Game works nicely now with improved audio!

Dai Makai Mura for PC Engine Super Grafx.

Temper has been updated to 0.81 and includes the following fixes and improvements:

* Faster! All Hucard and most CD games now run full speed at 336Mhz. All Super Grafx games run fullspeed at 384Mhz. The default clock speed is now 336Mhz.
* Audio bug fixes including a nasty CD audio bug. Much nicer audio all round.
* Changed menu keys, shoulder keys are used to navigate between files and directories.
* All keys are now re-definable. There is also a hard coded combo which always gets back to the menu: L+R+SELECT
* Screen scaling mode now supports 352 wide modes (also known as 341 pixel mode). ie. R-Type
* Other fixes.

Sunday, September 21, 2014

Dingoo A320 Native and Gamepark GP32 - vAtari v2.0

I originally made vAtari because the GP32 was sorely missing a good Atari 2600 emulator and as it happens so does the Dingoo A320 in Native mode.
The original version of vAtari for the GP32 was entered into the PACC 2010 contest. It didn't win but it did provide excellent motivation to get most of the work on it done.
Since then, this version has many fixes and enhancements including more accurate graphics and sound and higher compatibility.

My two favourite Atari 2600 games: H.E.R.O  

..and River Raid

The Dingoo A320 is my first .SIM release so there is no frontend end: it uses the Dingoo Native's OS to select a ROM.

The GP32 version has a frontend: select a game and press either 'A', 'B' or 'Select' to start the game. The button you press to start determines the GP32's CPU clock rate.

In both cases, the Atari 2600 ROMs should be uncompressed and have the .A26 suffix.

* Joystick provides movement for either joystick or paddle.
* 'A' Button is the fire button.
* 'B' Button is the fire buttons on the "other" controller.
* 'START' Atari Reset.
* 'SELECT' Atari Select.
* Games the require two joysticks, hold 'B' button to use second joystick
* Games the require two joysticks, 'L Shoulder' is the other fire button

A320 Specific
* 'Power Slider' to switch off.
* Hold 'L + R Shoulder' back to O/S.
* 'L Shoulder' decrease volume.
* 'R Shoulder' increase volume.
* 'Y' toggles Player 1 difficulty.
* 'X' toggles Player 2 difficulty.

GP32 Specific
* 'SELECT + START' back to frontend.
* 'L + R' Information screen
* 'L Shoulder' toggles Player 1 difficulty.
* 'R Shoulder' toggles Player 2 difficulty.

Thursday, September 4, 2014

MAME4ALL v1.3 for Dingoo A320 Native

It's been a long time between releases. I've been busy with a host of stuff, so I'd better start releasing them!

First is MAME4ALL v1.3, which has a host of new features. You really do need to read the "whatsnew.txt" file included in the Binary download for all details. The "readme.txt" is also updated so please look at that for updated information on controls.

Quick summary of the major news:

* Vastly improved front-end, now featuring full snapshot preview support. Almost 2000 snapshots are included, all taken from within this version of MAME4ALL!
* Huge number of bug fixes, including a long standing sound bug which improves sound for many, many games! Including the newly supported Zwackery.
* Huge number of new games added and existing games updated.

Zwackery now works, nice game and despite needing 6 buttons, plays fine once controls are customised.

Macross, new game added, complete with sound.

 Konek-Gorbunok, another new game added.

New frontend. Grey name is a clone, Red name is a non-working game.Preview snapshots "slide" out from the right. If there is no snapshot, nothing is displayed. Multiple snapshots for the same game cycle around.

GCW-Zero version of MAME 0.37b16, MAME 0.66 and MAME 0.84 coming soon, complete with integrated frontend and preview snapshot support.

Thursday, December 26, 2013

MAME4ALL v1.0 for Dingoo A380

Some time ago a forum member named 'retrodd' donated an A380 to me on the promise that I would deliver a version of MAME4ALL for this nice little handheld. Well at long last, here it is!

I'm happy to announce v1.0 of MAME4ALL for the Dingoo A380!

What is MAME4ALL (MAME)?

MAME is Multiple Arcade Machine Emulator - basically it emulates arcade games from the 70's, 80s and 90s.

MAME4ALL for the A380 is based on my Dingoo A320 Native version of MAME4ALL and includes all fixes and updates from that release. This version also contains some extra enhancements and new games playable.

The mame.dge launches the MAME4ALL game selector.
Use mame_vm.dge also has extra commands to setup and use a 64MB swapfile for extra large games - recommended with all "larger" games. ie. Neo Geo.

Download Dingoo A380 MAME4ALL v1.0 Binary
Download Dingoo A380 MAME4ALL v1.0 Source Code
Discuss Dingoo A380 MAME4ALL v1.0

Zombie Raid now working (along with many other seta.c games!)

Tuesday, November 12, 2013

MAME4ALL v1.2 for Dingoo A320 Native

Lots of work went into this BIG release!

So many new items and changes that I will only list some of the bigger ones here.
  • Big update to memory handling means more memory for games.
  • Huge update to FAME CPU emulator now plays every M68000 game.
  • New compressed graphics storage - larger games now work.
  • Lots of new games now working and added.

If you have any issues please consult the included text files for information first.
The "readme.txt", "whatsnew.txt" and "FAQ.txt" are all updated with each release and will answer most questions.

The Simpsons working at full speed with sound.

Operation Thunder added. Plays nicely.

In The Hunt added with sound

Outrun - now running nicely with FAME

Tuesday, July 23, 2013

Temper 0.80 for Dingoo Native v1.0

What is Temper?
Temper is an NEC PC Engine emulator originally coded by Exophase and ported by Slaanesh.
 Temper plays HuCard, CD, SCD, AracdeCD and SuperGfx games.

Another one that's been a long time in the coming. Much of this was done more than a year ago, however it wasn't polished or fast enough as I couldn't use any of the ARM assembly code that a good portion of this is written in.

A few recent breakthroughs in my development toolchain and other optimizations on the native side code has meant that this is now working fullspeed on the Dingoo Native!
Most games (even CD) will run at fullspeed with no frameskip. Well all the ones I've tried - about 30 or so.
Everything seems to work fine including HuCard, CD, SCD and Arcade support. There is full OGG support for CD tracks and BZIP2 compression is also supported for compressed ROMs and savestates.

CD support and the .CUE file

For CD games, you will need .CUE and .ISO/.OGG files for data and sound tracks respectively.
I converted my own PC Engine CD games to test this out so I know that it works fine.
There isn't however a lot of error checking so the file format is picky.

The .CUE file is simply a TXT file that tells Temper what each file is. Edit it with a text editor like vim.

For example, the first 3 file entries of Castlevania would look something like this.

FILE "DraculaX_t1.ogg" OGG
    INDEX 01 00:00:00
FILE "DraculaX_t2.iso" BINARY
  TRACK 02 MODE1/2048
    PREGAP 00:03:00
    INDEX 01 00:00:00
FILE "DraculaX_t3.ogg" OGG
    PREGAP 00:02:00
    INDEX 01 00:00:00

Note that the FILE entries are just the actual filenames with no paths.
All files should be contained within the directory where the .CUE is found.
I use separate directories for each CD game, the game selector can navigate through around the filesystem.

GP32 version

I also have a GP32 version of Temper which is also quite fast and playable. Is anyone interested in a GP32 version of this anymore?