TASEmulators / TASEmulators/BizHawk

MAME core fails to run Taito Air System games (Top Landing 1988, Air Inferno 1990)

Open
#4,563 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Core: MAME Repro: Affects 2.11 Repro: Affects 2.9 Repro: Patch pending
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

Summary

When attempting to run Top Landing (1988) and Air Inferno (1990) in BizHawk’s MAME core, the emulator throws an error and fails to start the game. These titles run correctly in standalone MAME, but not in BizHawk. This issue has been present since BizHawk 2.9.0 (the first release with MAME core support) and persists in the latest version (tested on v2.11).

Repro
  1. Launch BizHawk v2.11 (64‑bit).
  2. Select the MAME core.
  3. Load Top Landing (1988) or Air Inferno (1990).
  4. Launch BizHawk v2.11 (64‑bit).

Select the MAME core.

Load Top Landing (1988) or Air Inferno (1990).

Observe the error message

Output
A core accepted the rom, but threw an exception while loading it:
System.ArgumentOutOfRangeException: range end < start
Parameter name: endInclusive
Actual value was 2047.
   at BizHawk.Common.MutableRange`1.Overwrite(T start, T endInclusive) in /src/BizHawk.Common/Ranges.cs:line 51
   at BizHawk.Emulation.Cores.Arcades.MAME.MAME.GetInputFields() in /src/BizHawk.Emulation.Cores/Arcades/MAME/MAME.IInputPollable.cs:line 77
   at BizHawk.Emulation.Cores.Arcades.MAME.MAME.StartMAME(List`1 roms) in /src/BizHawk.Emulation.Cores/Arcades/MAME/MAME.cs:line 235
   at BizHawk.Emulation.Cores.Arcades.MAME.MAME..ctor(CoreLoadParameters`2 lp) in /src/BizHawk.Emulation.Cores/Arcades/MAME/MAME.cs:line 72
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at BizHawk.Emulation.Cores.CoreInventory.Core.Create(ICoreInventoryParameters cip) in /src/BizHawk.Emulation.Cores/CoreInventory.cs:line 144
   at BizHawk.Client.Common.RomLoader.MakeCoreFromCoreInventory(CoreInventoryParameters cip, String forcedCoreName) in /src/BizHawk.Client.Common/RomLoader.cs:line 433
Host env.

BizHawk 2.11; Windows 11 Home; Intel CPU / NVIDIA GPU

Also tested starting from BizHawk 2.9.0 onward (issue present in all versions with MAME core).

Screenshots
Image Image Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in BizHawk.Emulation.Cores/Arcades/MAME/MAME.IInputPollable.cs at GetInputFields(), then inspect BizHawk.Common/Ranges.cs at MutableRange.Overwrite and the call from MAME.cs:235. Reproduce with Top Landing or Air Inferno and trace the invalid range; done means both games load successfully through BizHawk’s MAME core.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.