Skip to content

Commit

Permalink
Upgrade to .net 4.8
Browse files Browse the repository at this point in the history
  • Loading branch information
Javier Cañon committed Oct 2, 2024
1 parent 602857c commit 4736ac3
Show file tree
Hide file tree
Showing 5 changed files with 100 additions and 63 deletions.
135 changes: 78 additions & 57 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,80 @@ MAME (Multiple Arcade Machine Emulator) is a free and open source emulator desig

MAME.NET runs at following steps: load the ROMs, initialize the machine, soft reset the machine, and loop "cpuexec_timeslice" operation. The "cpuexec_timeslice" operation means sequentially execute every CPU for a time slice, and execute timer callbacks. Timer callbacks contains: video update, soft reset, CPU interrupt, sound update, watchdog reset and other interrupts. By these steps, MAME.NET emulates the arcade board successfully. MAME.NET has more functions: save and load state, record and replay input, cheat, cheat search, IPS (patch main ROM), board debugger, CPU debugger.

### Project History
- 1st February, 2019: Finished MAME.NET, supports 792 games (build 20190201)
- 4th June, 2019: Added M72 and M92 boards, supports 826 games (build 20190604)
- 19th May, 2020: Added Taito B board, supports 830 games (build 20200519)
- 3rd December, 2020: Added Konami 68000 board, supports 882 games (build 20201203)
- 16th June, 2021: Added Capcom board, supports 888 games (build 20210616)
- 5th August, 2021: Supports 890 games (build 20210805)
- 27th February, 2022: Added rom hacking: Warriors of Fate, Kassar Sits Continuously
- 8th February, 2023: Added Taido board, supports 912 games (build 20230208)
- 24th April, 2023: Added mouse support, supports 918 games (build 20230424)
- 14th August, 2023: Added 11 Capcom games, supports 929 games (build 20230814)
- 19th February, 2024: Added 5 Tehkan games, supports 934 games (build 20240219)
- 20th June, 2024, Added 6 Data East games, support 940 games (build 20240620)

### Requirements

- You should install Microsoft .NET Framework 4.8 or higher before running the program.
- You should download MAME.NET ROM files in roms directory.
- For development you need DirectX and Visual Studio 2022.

### Screenshots

![sh01](docs/img/sh01.png) ![sh02](docs/img/sh02.png) ![sh04](docs/img/sh04.png)

### Hotkey:

- F3 -- soft reset,
- F7 -- load state,
- Shift+F7 -- save state,
- F8 -- replay input,
- Shift+F8 -- record input (start and stop),
- 0-9 and A-Z after state related hotkey -- handle certain files,
- F10 -- toggle global throttle,
- P -- pause and continue,
- shift+P -- skip a frame.

### Control key:

- 1 -- P1 start,
- 2 -- P2 start,
- 5 -- P1 coin,
- 6 -- P2 coin,
- R -- Service 1,
- T -- Service,
- W -- P1 up,
- S -- P1 down,
- A -- P1 left,
- D -- P1 right,
- J -- P1 button1,
- K -- P1 button 2,
- L -- P1 button 3,
- U -- P1 button 4,
- I -- P1 button 5,
- O -- P1 button 6,
- Up -- P2 up,
- Down -- P2 down,
- Left -- P2 left,
- Right -- P2 right,
- NumPad1 -- P2 button 1,
- NumPad2 -- P2 button 2,
- NumPad3 -- P2 button 3,
- NumPad4 -- P2 button 4,
- NumPad5 -- P2 button 5,
- NumPad6 -- P2 button 6.

When the ROMs of a game are loaded, the emulator is auto paused. Press P to continue.

*Occasionally GDI+ error occurs and a red cross is shown. You can click "File-Reset picturebox" to handle the error.

## ROM Files

- MAME.NET ROM files: https://pan.baidu.com/s/14bR2wEzU2Qqx5hM7hJXMZA
- https://www.mamedev.org/roms/


## Contents

Expand Down Expand Up @@ -125,66 +199,13 @@ Since March 2016 with version 0.172, MAME itself switched to common free and ope
- [37] "MAME is now Free and Open Source Software". MAMEDEV.org.

## External links

- https://github.com/mamedev/mame based simulator.
- https://www.mamedev.org/
- Official website http://www.mameworld.info/ MAMEworld MAME resource and news site
- http://adb.arcadeitalia.net/ Arcade Database Database containing details of any game supported by Mame, including past versions. There are images, videos, programs for downloading extra files, advanced searches, graphics and many other resources.

Detail: https://www.codeproject.com/Articles/1275365/MAME-NET

You should install Microsoft .NET Framework 3.5 or higher before running the program. You should download MAME.NET ROM files in roms directory.

### Screenshots

![sh01](docs/img/sh01.png) ![sh02](docs/img/sh02.png) ![sh04](docs/img/sh04.png)

### Hotkey:

- F3 -- soft reset,
- F7 -- load state,
- Shift+F7 -- save state,
- F8 -- replay input,
- Shift+F8 -- record input (start and stop),
- 0-9 and A-Z after state related hotkey -- handle certain files,
- F10 -- toggle global throttle,
- P -- pause and continue,
- shift+P -- skip a frame.

### Control key:

- 1 -- P1 start,
- 2 -- P2 start,
- 5 -- P1 coin,
- 6 -- P2 coin,
- R -- Service 1,
- T -- Service,
- W -- P1 up,
- S -- P1 down,
- A -- P1 left,
- D -- P1 right,
- J -- P1 button1,
- K -- P1 button 2,
- L -- P1 button 3,
- U -- P1 button 4,
- I -- P1 button 5,
- O -- P1 button 6,
- Up -- P2 up,
- Down -- P2 down,
- Left -- P2 left,
- Right -- P2 right,
- NumPad1 -- P2 button 1,
- NumPad2 -- P2 button 2,
- NumPad3 -- P2 button 3,
- NumPad4 -- P2 button 4,
- NumPad5 -- P2 button 5,
- NumPad6 -- P2 button 6.

When the ROMs of a game are loaded, the emulator is auto paused. Press P to continue.

*Occasionally GDI+ error occurs and a red cross is shown. You can click "File-Reset picturebox" to handle the error.

MAME.NET ROM files: https://pan.baidu.com/s/14bR2wEzU2Qqx5hM7hJXMZA

- http://adb.arcadeitalia.net/ Arcade Database Database containing details of any game supported by Mame, including past versions.
There are images, videos, programs for downloading extra files, advanced searches, graphics and many other resources.
- More details: https://www.codeproject.com/Articles/1275365/MAME-NET

## Authors
- Original author: shunninghuang https://www.codeproject.com/Articles/1275365/MAME-NET
8 changes: 6 additions & 2 deletions src/MameNet.Winforms/MameNet.Winforms.csproj
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
Expand All @@ -10,13 +10,14 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>mame</RootNamespace>
<AssemblyName>mame</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand All @@ -28,6 +29,7 @@
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PlatformTarget>x86</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
Expand All @@ -38,6 +40,7 @@
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PlatformTarget>x86</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.DirectX, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
Expand Down Expand Up @@ -506,6 +509,7 @@
<SubType>Designer</SubType>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
Expand Down
8 changes: 4 additions & 4 deletions src/MameNet.Winforms/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("mame")]
[assembly: AssemblyTitle("Name.NET")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("mame")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Expand All @@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.2024.0620.0")]
[assembly: AssemblyFileVersion("1.2024.0620.0")]
6 changes: 6 additions & 0 deletions src/MameNet.Winforms/app.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
</configuration>
6 changes: 6 additions & 0 deletions src/MameNet.sln
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ VisualStudioVersion = 17.11.35312.102
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MameNet.Winforms", "MameNet.Winforms\MameNet.Winforms.csproj", "{8AFD3E98-81CF-4F1A-9C90-16A926AE40DB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D2C44F01-B0F6-47E9-A6F0-78BFCDDE0D32}"
ProjectSection(SolutionItems) = preProject
..\.gitignore = ..\.gitignore
..\README.md = ..\README.md
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down

0 comments on commit 4736ac3

Please sign in to comment.