MAME 0.106 Beta 3 2024 / 09 / 07
This is a Port of Mame106 (2006) to Amiga classic 68060, using
bebbo gcc6.5 crosscompiler, made in 2024.
It would only work on very fast Amigas with more than 128Mo, mostly
targeted for PiStorm with RaspberryPi3 or 4.
Refer to the official MAME documentation (www.mamedev.org) to
know copyright issues and how it works. Romset would be the same
as "Mame Advance", but drivers included are mostly a selection of
games from 1986 to 1998.
Picasso drivers are strongly needed, AGA will only display a few 8bits games.
OS3.1 and later are mandatory. AHI is needed for the sound but optional.
This is still in development.
This is hugely based on Mame060 from triumph for the MUI part.
All these projects are under GPL licences.
Features:
- 4 players possible with 2 CD32 pads, joystick or mouse
+ parallel ports joystick, and keyboard.
- Screen preference per game resolution.
- A reworked sound mixer that adapt to applied speed in real time.
= = = = = = = Corrections/ improvment in Beta 3 since Beta 2 = == = =
(2024/09/07)
- Inputs configuration panel and Input engine rewritten,
now 1 or 2 Amiga mouses can be seen as "analog input":
You can play Arkanoid with your mouse, or for
"Operation Thunderbolt" you can configure 2 mouses
for player 1 and 2, as analog guns with the 2 buttons used.
Hardware ports can be assigned a given player and device.
The new default input configuration is:
.joyport as the P1 joypad,
.mouse port as P1 analog device.
"Forgotten world" wants an analog device to rotate the gun, in addition
to a 2bt joystick. In such case you can directly use both mouse and
joypad, or configure analog Inc / Dec to any 2 buttons of your CD32 pads,
in the tab/input configuration during play.
- Triple buffer: As games like "Wonder Boy" now reach 100% speed,
a triple buffer is strongly needed to avoid vertical glitches.
It has been implemented with the official Amiga function ChangeScreenBuffer(),
(and optionally ScrollVPort() )... but as of 2024/09, the current piStorm
P96 driver has huge problem with those functions, slowing down dramatically.
So you'll have to stick to a single buffer on piStorm. This is still investigated.
- Tons of little bug corrections, notably on sound mixer and driver list
and ARGB pixel modes.
- Speed !... Optimisations were done on:
(1) memory.c, to ease the slow memory access bottleneck, all games are 5% faster.
(2) drawgfx.c, the sprite engine has an horizontal api change, games using
massively sprites or using the sprite drawing for tilemap are 5 to 20% faster
(3) Musashi 68k emulation access were made more direct, gaining around 10%
for games using 68000 (most of the 90's games.)
... so there is between 5% to 20% acceleration since beta2, with a few games
(bubble bobble, teenage mutant turtle) being 30% faster.
In-game emulation speed ratio evolution on Pistorm32 Lite + Rpi3:
From Beta2, to Beta3:
+--------+-------+-------+-------------------------------+
|Archive | Beta2 | Beta3 | Name |
| | Speed | Speed | |
+--------+-------+-------+-------------------------------+
|outrun | 10/20%| 30% | Out Run :( |
|rastan | 52% | 63% | Rastan |
|slapbtjp| 70% | 82% | Slap Fight jp |
|snowbros| 68% | 96% | Snow Bross 1 :) |
|bublbobl| 59% | 82% | Bubble Bobble :) |
|batrider| 30% | 44% | Armed Police Batrider |
|dino | 62% | 82% | Cadillac & dinosaurs :) |
|tmnt | 60% | 91% | Teenage Mutant ninja Turtle 1 | :)
+--------+-------+-------+-------------------------------+
(you don't know "A.P.Batrider" ? Seriously, go check that.)
Sadly, "demon's world" and "ThunderForce AC" doesn't work anymore
due to these optimisations... they may be repaired in future release.
-A lot of games were broken and repaired during optimisations.-
Also sprite glitches can appear (wrong colors or priority)
tell me which games have problems in beta 3 at:
https://github.com/krabobmkd/amigamame/issues
= = = = = = = Corrections/ improvement in Beta 2 since Beta1 = == = =
(2024/08/08)
It was necessary to correct the non working driver before trying to optimize anything.
This is basically what Beta2 is about: working games, with no optimisation yet.
- Arkanoid 1, Rtypes and Irem machines, now works.
- Neo-Geo is implemented and works, but horribly slow on rPi3
(Try Mame060 and Mame4All for faster implementations).
- All Games with RGB15 and RGB32 color modes works with
all scale/rotation features supported (as far as tested).
- An alternative Rendering engine using CyberGraphics's "ScalePixelArray()"
can be used instead of direct CPU buffer copy in VMem.
ScalePixelArray() is a super well done function which aim is to scale
a true color bitmap from RAM, using bilinear filtering, possibly with hardware acceleration.
Also:
- brightness/gamma with correct default values, and in config panel.
- cheat mode file can be activated from Misc Panel. cheat.dat have to be decompressed.
Then during game Tab Key-> Cheat.
- corrected mirror mode for operation wolf and any game with FLIP_X or FLIP_Y.
- driver list gives more accurate informations
- corrected bugs that could make freezing occur at init.
- the whole app is potentially cleanable with ctrl-C signal at any moment (yes, madam).
- ha... now we ship one very special rom in roms/ , with the archive. This is a surprise.
Also, I wanted to tell about the P96 preference utility that allow to create any resolution possible for a screen.
For example, most good Capcom games from the 90's use 384x224 for resolution , which is 16/9.
It is a great idea to configure a 384x224 16b screen with the P96 tool if you have a 16/9 screen.
Then Mame will automatically use it and it will be fast and nice.
( I completely forgot how you do that, that preference app uses dragndrop a strange way. )
= = = = = = = Beta1
Bug reports, requests, ideas, love letters and maybe pull requests have one natural place:
https://github.com/krabobmkd/amigamame/issues
Your are of course welcome to fork anything in any way.
Build instructions:
If not done, Install a working bebbo gcc6.5 on linux, windows or macos.
follow instructions at : https://github.com/bebbo/amiga-gcc
also install git and cmake.
...Then in some directory do:
git clone https://github.com/krabobmkd/amigacommonlibs
git clone https://github.com/krabobmkd/amigamame
cd amigamame
git switch beta106
... then download mame106 source at
https://github.com/mamedev/historic-mame/releases/download/mame0106/mame0106s.zip
unzip and do a non-overwriting copy in amigamame/mame106 to add the missing files, you can omit "windows" and "etc".
then still in amigamame:
mkdir amiga-mame-build
cd amiga-mame-build
cmake ../amigamame106/
-DCMAKE_TOOLCHAIN_FILE=../../amigacommonlibs/cmake/Modules/Platform/m68k-amigaos.cmake -DCMAKE_BUILD_TYPE=Release
.. then build with:
cmake --build .
|