Ultimate MAME 0.144u1
The main official complaint with regards my previous ‘UltimateMAME’ proof of concept seemed to be the merging of everything into the single MAME tree. While I personally consider this an advantage (less places to look = less confusion) sometimes compromises have to be made in order to get things accepted officially.
Therefore, I present, based on the current codebase, a new proof of concept.
This, instead of combining the folders , adds a new build target to the system ‘complete’
The basic changes are still very simple, the mame.mak / mess.mak files have been reorganized a little to support what I’m doing, a simple tool has been created to merge .lst files to a final .lst file (right now it just joins the files, but additional validity checks could be added)
To support this the shared systems between MAME and MESS (where retail console units were used as the base for arcade machines) have been put in their own shared.lst to avoid conflicts, and an additional set of rules have been added to the makefiles to build the correct .lst for each target.
This, if accepted (and there really is no good reason it shouldn’t be, the base changes are legitimate and useful progress regardless) will reduce the actual number of files needed to create a combined build down to 2. The ‘complete.mak’ and ‘complete.c’ in the ‘complete’ folder. Therefore, even if a decision to not include those 2 specific files is taken it will be a LOT easier to maintain externally anyway.
From the point of view of Mamedev this allows the projects to maintain their individual identity, and keep the folder separation.
From the point of view, or somebody working on cross-project drivers it gives the option to build a single combined binary as a target. As an added bonus, if you have a single ‘Complete.exe’ binary built, and want the individual MAME.exe or MESS.exe out of it then everything you need is already built, so changing the target in the makefile will give you the split build in a matter of seconds, no need for a new rebuild!
For people who don’t care about having a combined binary this is a 0 impact change, absolutely nothing about the project work flow changes, and the combined target can happily be ignored. By default MAME.exe / MESS.exe will be built, you have to specify that you want a combined binary.
This is in essence win-win for everybody.
—-
Binaries / Source stuff
The following MAME/MESS sync positions were used:
http://git.redump.net/mame/commit/?id=72c99a93fb4102fe870562eeaf31ae49cfb4dc6d
http://git.redump.net/mess/commit/?id=9983e6ed75e51c8974318b3706853b6c5da63a5e
Both being slightly newer than 0.144u1 on the ‘Better error handling for softlists’ change.
After combining those sources, the following diff was applied to update the build system as I describe above.
That still leaves the default build target in the makefile as ‘mame’ change it to ‘combined’ to get the combined build.
Combined Source here
64-bit Binary here
32-bit Binary here
I’ve still had some issues building the tools, but it should be possible to resolve those quite easily, it just wasn’t necessary for this 2nd proof of concept, which was targeted at resolving the issues MameDev had with the first patch.
—
Fingers crossed that the basics of this will actually be accepted, I can’t think of any legitimate reasons why it wouldn’t be, but you never know with Mamedev these days… Anyhow, it’s all been submitted yet for some reason I still have a bad feeling I’ll come up with answers to all the problems, then just get radio silence instead of a real reason for things not being included tho…
Given that I’ve called the build target ‘Complete’ (which is a better description of it) and the exe is therefore complete.exe maybe I should call any future builds produced like this ‘MameComplete’ as they represent a more complete Mame build than the baseline. The current name was just really based on the most complete version of Windows being the ‘Ultimate’ editions ;-)
—————
Mini Game Review – Willy Wino’s Stag Night (Amstrad CPC)
I’ve recently been having a bit of a play with the Amstrad CPC driver, scoping out how well it runs things (definitely room for improvement) and it’s on that system I’d like to highlight a game I think is a good example of classic platforming action.
Released in 1988 by Probe Software, Willy Wino’s Stag Night utilizes the lower resolution, higher colour mode of the CPC to good effect. Unlike many games on the system which overload the screen with action, and attempt all sorts of fancy scrolling at the cost of fluidity Willy Wino’s presents clear graphics, and a solid framerate, boasting some very nice animation of the main character.
The game is a flip-screen ‘collect all the objects’ style game, think Manic Miner, but with multi-screen levels and bigger objects and you’re pretty much there. It’s not the longest game in the world at only 8 levels, but with only 3 lives it remains challenging without ever seeming unfair.
In keeping with the theme of the overall game you’re picking up bottles of Willy’s preferred alcoholic beverage (which would appear to have no ill effect on your protagonist) Enemies are your typical spikes, traps, fire, and a random assortment of other objects, you’ve got the conveyor belts you expect in this type of game and everything is pretty much as you’d expect. There’s no music, just a little tune each time you pick up an object and the sound of your footsteps, jumping and deaths. All fitting and polished like the rest of the game comes across as.
Overall presentation is good, you have all the option to choose your keys, some brief instructions, and if you leave the game running on the menu you’ll get to see a collection of screens from the game which just makes you want to play more to actually reach them.
The main difficult comes from the movement speed, your character is quite slow, no faster than any of the enemies, which means you have to carefully plan what you’re going to do, when you’re going to make a run for it. You turn slower than the enemies, so indecision can be fatal, also like most games in this genre it’s important to get the jumps right, jump into a spike and you’re history. Again, this never feels unfair, and once you get the hang of the timing you’ll be able to anticipate most dangerous situations well. To keep you on your toes there is a timer in the form of the ‘Air’ bar top left, so you can’t just hang around forever!
All in all it’s classic platform action and a very good example of working to the strengths of the system, there are definitely flashier games but as far as standing up to the test of time goes this one is a gem, and not one to overlook!
For the purpose of testing the current ‘Ultimate MAME’ build posted here was tested, system ‘cpc464’ and entry ‘-cass willywin’ which is the cassette version from the Software List.
To use, type |tape and hit return (the | character is mapped to the { key here) and then type run” hit return, then press any key.
To start the tape in you have to turn the full keyboard emulation off with SCROLL LOCK, press TAB to bring up the internal menu, Scroll down to Tape Control, select that, scroll down to Play, select that, close the menu with Tab, then hit SCROLL LOCK again to turn the full keyboard emulation back on.. Then wait a while for it to load, enjoying the ‘Bleep Loader’ which owners of both the Amstrad and Speccy will be very familiar with ;-) In terms of emulation quality, I didn’t notice any problems at all with the emulation of this title.
————
Mini Game Review – Ghouls (Amstrad CPC)
When somebody says ‘Pacman with Legs’ most people instantly think of Crazy Otto, the prototype which was to later become Ms. Pacman. I think of this. The concept is so simple, so perfect, Pacman, as a platform game.
Ghouls is a game I want to love as a game, but it’s also a game I’d dearly actually love to be able to complete the first level on. Actually merely overcoming the first obstacle is a challenge. This game has issues.
When it comes to collision detection helping you, for example, needing to land on a platform, it seems you need to be spot on, or you miss. When it comes to something killing you, the slightest touch will do it. Controls are also terribly laggy too, you need pixel perfect jumps, but there is a noticeable delay between pressing the jump button, and actually jumping. Worse still, if you actually hold down the jump button for more than a fraction of a second, even if you release it prior to jumping, you’ll jump once again upon landing, usually to your death. Usually this is because falls kill you, jump off a ledge, and you die. Was that really necessary?
This could have been a really good game, but the execution lets it down so badly it really borders on unplayable, it’s a real shame, because you can see what the game designers and programmers wanted to achieve, and they’ve got the visual style of a side-on Pacman game down to a science here. Simply to get screenshots of other levels I had to leave it in running the demo mode, a demo mode where the character makes no attempt to actually play the level, possibly a wise move, death after all is inevitable ;-)
The levels have moving platforms (which kill you) Ghosts which home in on you (and kill you) Gaping canyons (which kill you) Spikes (which kill you) Extending bridges (which usually just end up killing you) and to top it off you don’t even get that many lives, there’s no password system, no checkpoints in the levels, and sometimes the ghosts actually spawn in positions which make the levels seemingly impossible even if you were to get the jumps spot on.
Somebody could go back to the drawing board and produce a really good game out of this, I’m sure, but issues with the controls, issues with the collision, the sheer number of things which will kill you and the lack of any feeling that you’re making worthwhile progress means this game falls at the first hurdle, much like you do 9 times out of 10 when you play it. Worth looking at just to imagine what it could have been, but ultimately terrible.
For the purpose of testing the current ‘Ultimate MAME’ build posted here was tested, system ‘cpc464’ and entry ‘-flop1 ghoulsuk’ which is the floppy disk version from the Software List.
To use, type run”ghouls and hit return.. the game will load from the emulated disk drive.
No emulation problems were observed, the game really is just as unplayable on a real system!