David Haywood's Homepage
MAME work and other stuff
June 10, 2015 Haze Categories: General News. 42 Comments on Choplifter ’92

Sega’s Air Rescue is a spiritual successor to the game Choplifter, you fly around surrounded by enemy vehicles while attempting to land to pick up hostages. Jaleco used the same concept for their overhead perspective ‘Desert War’ too.

The twist with Air Rescue is that while Choplifter is a side-on view, and Desert War is an overhead view the entire game here is presented in a 3d perspective using zoomed sprites.

The game used Sega’s System 32 platform and has been partially emulated in MAME for a long time now. I say partially emulated because we needed some hacks to get it running. The thing with the Air Rescue hardware is that it actually uses 2 stacks of System 32 PCBs which are directly connected using a bridge board placed under the rom board. That bridge board contains RAM which is shared between the two System 32 stacks.

With the real hardware if either of the System 32 PCBs or the bridge board fails / are missing the game does not boot, it is designed to work in the 2 screen, 2 player cabinet it shipped in only. MAME hacked around this faking the response from the 2nd PCB stack in order to avoid emulating it, this however had some unwanted side effects.

For a start, the title screen was cut in half the first time of showing, and subsequent times the single screen title that is meant to be used while the other player is playing was shown. This also meant the intro sequence was never shown in the attract mode. More importantly half the gameplay was missing, the dual screen setup means the game can actually be played as a co-op game in addition to being a single player game, in co-op mode each player flies their own helicopter around the same arena and the number of hostages to rescue + number of enemies is increased to maintain the same level of challenge.

MAME has a nice device based system these days, so by promoting an entire System 32 PCB to be a device, allowing for two to be added to a driver with the shared RAM added just like any other shared RAM, I was able to quite simply emulate this properly.

Note this isn’t a ‘network’ game as such, there are no network cables, it’s a simple case of doubled up hardware. Sega would later refine their system into the ‘multi32’ board which was capable of driving 2 screens on it’s own with half the video capability on each, these full-fat setups were obviously more expensive. The multi32 system was already emulated with both screens (although I do need to look at some bugs that were introduced way back when Aaron rewrote the driver then never fixed the reported bugs)


Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens
Air Rescue - Both Screens


Content not available.
Please allow cookies by clicking Accept on the banner

I’ve also made a video, note the sound is rather chaotic because you’re hearing the output from both monitors, which often end up playing the same tune with a slight delay causing an echo effect, this would sound less harsh if sat in front of the speakers for each screen on the cabinet.

F1 Exhaust Note uses the exact same type of link board and benefits in the same way, note how you can see the position of the other players car marked on you screen with an arrow in the final 2 gameplay shots.


F1 Exhaust Note
F1 Exhaust Note
F1 Exhaust Note
F1 Exhaust Note
F1 Exhaust Note

F1 Super Lap is a linked game instead and hasn’t been touched.

Bonus Trivia

For the curious, Sega also released an ‘Air Rescue’ game for the Sega Master System, this 8-bit game has little resemblance to the arcade and plays more like a traditional sequel to Choplifter. With the MAME/MESS merger of 0.162 you can now play this in MAME using the launch syntax of “mame smspal airresc”


Air Rescue - Sega Master System Air Rescue - Sega Master System
Air Rescue - Sega Master System Air Rescue - Sega Master System
Air Rescue - Sega Master System Air Rescue - Sega Master System

42 Comments

You can follow any responses to this entry through the RSS 2.0 feed.

Woohoo!
Now we need to device-ify the X board too. GP Rider anyone? :)

Yeah, I’m going to have to do x-board at some point anyway, some of the gamblers (if we ever end up with a complete dump of one) use x-board units connected to other units (m1 board for example) so we’d need to be able to have a driver with multiple board types running to emulate those. (unfortunately so far we’ve never managed to pick up a complete unit for one, always missing one board or another)

Very nice. I play the PC remake “Choplifter HD” all the time. Choplifter is so cool.
… don’t you need to use the -cart1 parameter to run the SMS version ?

Thanks for this stuff, Haze. Do you know if Arabian Fight (and Spiderman, and Revenge of Death Adder, if I recall) still have the graphic glitches you mentioned a couple of years ago (maybe more)?

Great job!

Good job!

Amazing! F1 Exhaust Note looks interesting…

Ciro: Nope. There’s only one game by that name in the SMS softlists so it auto-resolves.

@Ciro: as Arbee says, in this case it is not strictly necessary to specify the -cart switch (btw, sms has only a single cart switch, so it’s -cart and not -cart1 in the xml output) because the emulator cannot make mistakes and it mounts the game in the proper place.

as such, for the end users (especially those coming from MAME) we suggest in such a case to skip the media switch and treat it as optional

if you are asking as a frontend developers, instead, I suggest you to always specify it because otherwise you have to code a dozen or so of custom checks to understand whether you can skip the media switch or not.

For some reason the stranded people you’re rescuing in this game look like they’d easily fit into a horror game mod like Five Nights at Freddys or Slenderman. Freaky look to them.

Great stuff with the device refactoring Haze. Looks like MAME’s modernisation efforts paid off here.

Nice Work Air Rescue is a Good Un!!!

hello,haze.congratulations from France for your good job .It’s a pleasure to read your frequent news …I have one question ( don’t put a gun on me please coz i know those kind of questions usually get on devellopers nerves )…. I have a mamecab and i play capcom vs snk2 with nulldc but it s a shame to config the key ,it ‘ s launching by command line and mame is so easy to use instead . It runs almost perfect on nulldc and in mame despite a powerful pc,it s slow ….Don’ t misunderstand me ,i don’t ask when it will be possible to run it at full speed but just a few words to explain why there is such difference between the two applications ?Is there a way to integrate the nulldc module in mame like it was done with elsemi and its cps3 emu ?

thxs again for all

Tokyo Bus Guide – Naomi found, very good!

Hi haze,

you have a new pm on neosource ;)

++

>> Do you know if Arabian Fight (and Spiderman, and Revenge of Death Adder, if I recall) still have the graphic glitches you mentioned a couple of years ago (maybe more)?

I think most of the problems are Multi-32, for plain s32 DBZVRVS has some odd priorities in places but there’s always a chance the protection isn’t fully simulated as we found for Space Harrier recently.

> ?Is there a way to integrate the nulldc module in mame like it was done with elsemi and its cps3 emu

no, demul takes an approach that’s closest to what MAME would do (nullDC approach is completely unsuitable) but even then you can’t just integrate a core using completely non-portable technologies into MAME. Much of the CPS3 stuff in MAME was written by me, it’s not “a port of ElSemi’s CPS3 emu” as discoveries were made by both sides when working on it, the only code that was 100% ElSemi’s code was the SCSI access, and I think that’s now replaced with SCSI code from MESS.

An SH4 recompiler is where Demul gets most of it’s speed, MAME doesn’t have that, but even then proper emulation of the graphic chip (which will eventually be done in MAME using a software rendering engine running on the video cards) is a long long way off.

For the record, does Rad Rally use Air Rescue/F1EN method of linking or the F1SL method?

>> >> Do you know if Arabian Fight (and Spiderman, and Revenge of Death Adder, if I recall) still have the graphic glitches you mentioned a couple of years ago (maybe more)?

>> I think most of the problems are Multi-32, for plain s32 DBZVRVS has some odd priorities in places but there’s always a chance the protection isn’t fully simulated as we found for Space Harrier recently.

Thanks for the answer. Seems Revenge still has a couple of known graphic issues: http://mametesters.org/view.php?id=5233

@Haze People just complain about Demul it runs better than that crappy nullDC.

by Suop.

> For the record, does Rad Rally use Air Rescue/F1EN method of linking or the F1SL method?

Rad Rally is closer to F1SL etc. you assign a network ID in the test menu, there’s a z80 on the link board etc.

Portraits Videogame can be fixed the colours?

Peaches: Please report bugs at MAME Testers, not here :)

Hi.
I can not install Ubuntu 14.04. There are broken dependencies.
Regards : )

PS:
qmc2-sdlume:
Depends: libc6 (>= 2.14) pero 2.19-0ubuntu6.6 no está instalado
Depends: libgcc1 (>= 1:4.1.1) pero 1:4.9.1-0ubuntu1
Depends: libphonon4 (>= 4:4.3.0) pero 4:4.7.80-0ubuntu1~ubuntu14.04
Depends: libqt4-network (>= 4:4.5.3) pero 4:4.8.5+git192-g085f851+dfsg-2ubuntu4.1
Depends: libqt4-sql (>= 4:4.5.3) pero 4:4.8.5+git192-g085f851+dfsg-2ubuntu4.1
Depends: libqt4-test (>= 4:4.5.3) pero 4:4.8.5+git192-g085f851+dfsg-2ubuntu4.1
Depends: libqt4-xml (>= 4:4.5.3) pero 4:4.8.5+git192-g085f851+dfsg-2ubuntu4.1
Depends: libqt4-xmlpatterns (>= 4:4.5.3) pero 4:4.8.5+git192-g085f851+dfsg-2ubuntu4.1
Depends: libqtcore4 (>= 4:4.7.0~beta2) pero 4:4.8.5+git192-g085f851+dfsg-2ubuntu4.1
Depends: libqtgui4 (>= 4:4.8.0) pero 4:4.8.5+git192-g085f851+dfsg-2ubuntu4.1
Depends: libsdl1.2debian (>= 1.2.11) pero 1.2.15-8ubuntu1.1
Depends: libstdc++6 (>= 4.1.1) pero 4.8.4-2ubuntu1~14.04
Depends: ume (>= 0.144) pero no va a ser instalado

@Arbee: Thanks but they will not accept this. Only when games get bugs after new mame versions
Release.

Yeah, portraits isn’t a ‘bug’, we’ve just never managed to figure out the colours properly; I’m not 100% convinced that the PROMs we have are correctly dumped. If they are then it might take some tracing of the board to figure out how things hook up, it didn’t seem logical last time I looked at it (couple of years ago)

It might be worth one of the other devs taking a stab at it (AWJ, or hap maybe?) and seeing if they can draw any other conclusions.

As for the Ubuntu question, you’re using UME 0.144, so first of all I’d recommend the current version of MAME instead (0.162) which has all the UME content by default. I’m not on Linux so I can’t really offer any support beyond that, but the chances of you getting support for such an old build is very slim, the chances of you getting support for a newer one is higher.

F1 Super Lap was not that hard after all – http://images.arianchen.de/sega-comm/mame/f1lap_link_2p.png – works almost the same as Virtua Racing / M1COMM.

Rad Rally on the other hand uses other firmware / memory layout and does not work (yet).

Yeah, 0.144 predates Ubuntu 14.04 by several years so not installing on it is quite likely. Try the latest, 0.162.

hello!!!!

in the github i can see progress on uzebox.
What is the emulation level? Full emulation of everything? :-)
What uzebox version is supported? Are there some snaps already available somewere?
bye!!!

Lots of packages in ubuntu are wildly out of date (especially using a LTS version that you are using). You would be better off building your own copy. Even the latest repo if you just got it from there would be 0.152 (which is decently old). I use ubuntu because it is sorta simple to setup and momentum. But to expect latest versions of stuff? Not so much. Like every else is saying use 162 or wait a week or two and use 163 :)

Since you worked on getting race drivin’ panorama working, is there any chance if you can take a look at other Atari games like San Francisoco Rush: The Rock, Area 51 Site 4, War the Final Assault, San Francisco Rush 2049, Road Burners, and Primal Rage 2 to working states? Can you take a look at them whenever you have the time since Aaron Giles has not been actively recently?

Hi @Haze
MAME, MESS and UME installed it from the repository http://sdlmame.wallyweek.org/repository/
It is the most updated version for Ubuntu 14.04. I thought you compile your Ubuntu Linux.

Do not know how to install the latest MAME, I think I’ll have to compile it.
From where I can download the source code of EMU and MESS?

Thanks for your help

Sorry
MAME, MESS and UME installed it from the repository: sudo add-apt-repository ppa:c.falco/mame
QMC2 and SDL… installed it from the repository: http://sdlmame.wallyweek.org/repository/
;)

Thanks Haze. Masterpieace.

Someone make a Neo SNK ARCADE MVS Magic Key it contains all Neo Geo MVS Games including all those missing protos we discuss all over those year.

https://www.ic2005.com/shop/product.php?productid=135

If someone is interrested to buy it and dump to mame.

@CrispX Oops… i read it wrong. Please remove the message.

Hi Haze,
from kawaks/razoola: http://www.speedyshare.com/tJ9a3/xmvsfur2.zip

(you can delete this post after reading it)

best regards, A++

I have some info and theories regarding Sega MegaTech but it will take a lot of effort to get it going on the NDS so thought maybe you can get it work better in MAME.
I did a quick test of sending data to a dummy vdp when bit 7 of 0x6803 (CXD2 port d) is 0 and now the bios doesn’t hang on “Time Out” and you get a “Test Mode” text on the whole screen when entering test mode.

Great work Haze & SailorSat, love the linked 2 player games, thank you for your dedication. Can’t wait for 8 player Outrunners really great work on the comm board stuff. When you guys finalise the network stuff and linked games please don’t forget about Rave/Ridge Racer ;-)

…and SSF II the new challengers

Hello haze, it seems mame is getting so well for Nintendo 64 games, and other goodies like namco games and etc… Keep going!

Not sure how many people noticed but Micko adding option to compile MAME using a selected list of drivers from the commandline is an absolute god-send.

For instance, I can do “make -j5 SUBTARGET=zsg2 DRIVERS=src/mame/drivers/taitogn.c,src/mame/drivers/zn.c” to get all the games that I know use the zsg2 chip – and the subtarget name is completely arbitrary afaik. It compiles from scratch in approx 2 minutes, most of it spent compiling random netlist devices for some reason but apart from that it’s great!

Speaking of the ZSG2 emulation, I see hap had some debug code to spit out the decompressed raw sample data being used to an external file and recently made a fix that made the drums in Psyvariar much more noticable. Interesting how some of the sfx in said raw files sound better or worse at different frequencies and mono/stereo choices when imported to Audacity as Little-Endian Signed 16-bit.

BPzeBanshee – Primal Rage 2 now can boot bios, but if we go play continues to frezze.

BPzeBanshee >
yeah, it’s handy, doesn’t work for all drivers right now, but if makes development much easier. eventually it will replace the current MAME/MESS subtargets, so you either get ‘everything’ (MAME) or what you request. That will probably end up morphing into some kind of developer defined criteria eg. to scan for all drivers where a specific CPU is referenced and build those.

that’s why I’ve said anything relying on the existing MAME/MESS subtargets is on borrowed time, it could be they’ll be gone as soon as the next release.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close