User:Freem/Scratchpad: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
m (work in progress edit (not really minor but I want to stop cluttering the front page (sorry)))
m (working on a slight rewrite of the Hello world tutorial page. will add more later in the day)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
:''In order to avoid a situation like [[User:Freem/Homebrew]]; I'm going to be testing some things here. Everything is subject to change and/or deletion.''
:''In order to avoid a situation like the homebrew page formerly in my namespace, I'm going to be testing some things here. Everything is subject to change and/or deletion.''


=[[Development tools]] redesign=
=Hello World Tutorial=
==68000==
This tutorial will guide you through all the necessary steps to make a Neo-Geo binary which displays the text "Hello world!". The language we will be using is 68000 assembly, but good knowledge of it is not needed.
{|class="wikitable"
!colspan=6 style="background-color:#ccc"|Assemblers
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| [http://john.ccac.rwth-aachen.de:8000/as/ AS] || Alfred Arnold, et al || Multi-target assembler || (multiple) || Provided as source code and binaries (Windows, DOS) ||  
|-
| [http://sun.hasenbraten.de/vasm/ vasm] || Volker Barthelmann, et al || Multi-target assembler || (multiple) || Provided as source code<br/>"official" binaries are for older versions || &nbsp;
|-
| JAS || Charles Doty, Paul Lee, Michael Hope || Modified version of AS || Windows || (base AS version unknown; binary is circa 1999/12/30) || [[File:JAS.zip]]
|-
| Maccer || Michael Hope || Pre-processor for AS-series assemblers || (multiple) || Provided as source code and Windows binary || &nbsp;
|-
| [http://gendev.spritesmind.net/page-macX.html MaccerX] || Kaneda || Updated version of Maccer || (multiple) || Provided as source code and Windows binary; added support for XGCC (gcc) and comments || &nbsp;
|-
| SNASM68K || S.N. Systems || 680x0 assembler || Windows || &nbsp; || [http://segaretro.org/SNASM68K SNASM68K at Sega Retro]<br/><small>(Modified version by Nemesis)</small>
|-
!colspan=6 style="background-color:#ccc"|Compilers
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| NeoDev kit || Fabrice Martinez, Jeff Kurtz, et al || GCC compiler and library || &nbsp; || &nbsp; || [[File:NeoDev001.zip]]
|-
!colspan=6 style="background-color:#ccc"|Disassemblers
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| IRA || Tim Ruehsen, ported by Antirad || Intelligent ReAssembler for M680x0 || (multiple) || PC port of an Amiga app; provided as source ("PC") and binary (Windows) || [[File:Ira.zip]]
|-
| unidasm || MAMEdev || Universal Disassembler || (multiple) || Included with the Windows MAME distribution; can be built from source || &nbsp;
|}


==Z80==
==Setting up the Development Environment==
{|class="wikitable"
# Download [http://mamedev.org/release.html the latest version of MAME] and extract the contents somewhere you can easily remember (e.g. a directory like <code>C:\mame\</code> or <code>~/mame/</code>).
!colspan=6 style="background-color:#ccc"|Assemblers
# In order to run Neo-Geo software on MAME, you will need to create (or find) dumps of the various ROMs on the system motherboard. Typically these ROMs are packaged in a file called <code>neogeo.zip</code>. If you manage to find this zip file, copy it into the <code>roms</code> subdirectory of where you installed MAME. Otherwise, you will need a few files in the <code>roms/neogeo/</code> subdirectory: '''000-lo.lo''' (64KiB, the [[LO ROM]]), '''sm1.sm1''' (128KiB, the [[M1 ROM]] for sound), '''sp-s2.sp1''' (128KiB, the [[System ROM]]) and '''sfix.sfix''' (128KiB, the [[SFIX]] ROM).
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| [http://john.ccac.rwth-aachen.de:8000/as/ AS] || Alfred Arnold, et al || Multi-target assembler || (multiple) || Provided as source code and binaries (Windows, DOS) || &nbsp;
|-
| [http://sun.hasenbraten.de/vasm/ vasm] || Volker Barthelmann, et al || Multi-target assembler || (multiple) || Provided as source code<br/>"official" binaries are for older versions || &nbsp;
|-
| [https://github.com/vhelin/wla-dx WLA DX] || Ville Helin, et al || Multi-target assembler || (multiple) || Provided as source code || [http://www.niksula.cs.hut.fi/~tursas/wla/wladx_binaries_20040822.zip WLA-DX 9.2 Win32 binaries]
|-
!colspan=6 style="background-color:#ccc"|Compilers
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| ZCC || Ken Yap, et al || Z80 development package with C compiler || (multiple) || Provided as source code and binaries (Windows); circa January 1996 || [[File:zcc096.zip]]
|-
| [http://sdcc.sourceforge.net/ SDCC] || Sandeep Dutta, et al || "Small Device C Compiler" || (multiple) || Provided as source code and binaries (various platforms) || [http://sdcc.sourceforge.net/snap.php Snapshot Builds]
|-
| [http://www.z88dk.org/forum/ z88dk] || (many people) || z80 C cross compiler with assembler/linker || (multiple) || Provided as source code and binaries (Windows, Mac) || [http://nightly.z88dk.org/?C=M;O=D Nightly Builds]<br/><small>(Hit escape as soon as you see the links for "latest")</small>
|-
!colspan=6 style="background-color:#ccc"|Disassemblers
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| DASM || Charles Doty || Z80 disassembler || DOS || Source code and binary included. || [[File:dasmz80.zip]]
|-
| [http://www.inkland.org.uk/dz80/ DZ80] || Inkland || Z80 disassembler || (multiple) || Provided as source code (command line version) and binaries (DOS command line, Windows GUI) || &nbsp;
|-
| unidasm || MAMEdev || Universal Disassembler || (multiple) || Included with the Windows MAME distribution; can be built from source || &nbsp;
|}
 
==Source Editors==
There are a lot of source code editors out there... Use whatever you're comfortable with (hopefully one with 68000 and Z80 syntax highlighting).
 
==Sound and Music==
{|class="wikitable"
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| MVSTracker || Ivan Mackintosh || FM tracker || Windows || [http://www.archaic.fr/interviews/interview-jeff-kurtz-repond-a-nos-questions/3/ Z80 driver does not work on hardware] || &nbsp;
|-
| MVSTracker Suite || Pascal Bosquet, Kaneda || Modified version of MVSTracker || Windows || supports Mega Drive as well. Neo-Geo driver still doesn't work on hardware. || &nbsp;
|-
| [http://www.goldwave.com/release.php GoldWave] || GoldWave Inc. || commercial sound editor || Windows || &nbsp; || &nbsp;
|-
| [http://www.sonycreativesoftware.com/soundforgesoftware Sound Forge] || Sony || commercial sound editor || Windows, Mac || &nbsp; || &nbsp;
|-
| [http://audacity.sourceforge.net/ Audacity] || Audacity developers || open-source sound editor || (multiple) || &nbsp; || &nbsp;
|-
| [https://github.com/freem/adpcma ADPCM-A encoder] || freem || Command-line ADPCM-A encoder || (multiple) || Provided as source code and binary (Windows) || &nbsp;
|-
| [http://www.smspower.org/forums/11965-VGMLoggingWithOtherEmulators?start=200#66597 ADPCM-B encoder] || ValleyBell and Fred/FRONT || Command-line ADPCM-B encoder || (multiple) || Provided as source code and binary (Windows) || [[File:ADPCM_Encode.zip]]
|-
| [[Neo Sound Builder]] || Jeff Kurtz/Neobitz || GUI V ROM/PCM file creator || Windows || ADPCM-A only || [https://www.facebook.com/Neobitz/photos/a.462349983789893.110879.221161891242038/1093044660720419/?type=3 announcement post]
|}
 
==Graphics==
{|class="wikitable"
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| [[YY-CHR]] || YY || multi-format tile editor || Windows || &nbsp; || [http://www.romhacking.net/utils/119/ YY-CHR 0.99]
|-
| [[NGGTool|NeoGeo Graphics ToolSuite]] || evo || Windows || &nbsp; || &nbsp; || [http://furrtek.free.fr/noclass/neogeo/nggts.zip NGGTS]
|-
| Sprite graphics converter || IQ || &nbsp; || Windows || &nbsp; || [http://furrtek.free.fr/noclass/neogeo/gfxmvstocd.zip MVS to CD sprite converter]
|-
| [https://github.com/freem/NeoSpriteConv Neo-Geo Sprite Converter] || freem || Convert 4BPP SMS/GG/WSC graphics to Neo-Geo format. || (multiple) || Provided as source code and binary (Windows)<br/><small>Further work required for converting to Cart (split files by words (2 bytes)) and CD (byteswap file)-usable files.</small> || [http://ajworld.net/neogeodev/utils/neosprconv.zip main download]
|}
 
==Other Tools==
{|class="wikitable"
|-
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download
|-
| MemCardTool || Fabrice Martinez || Memory card manager || Windows || &nbsp; || [[File:memcardtool.zip]]
|-
| [https://github.com/freem/romwak ROMwak] || Jeff Kurtz, ported by freem || Binary image manipulation tool || (multiple) || Provided as source code and binary (Windows) || &nbsp;
|}

Latest revision as of 13:43, 22 January 2016

In order to avoid a situation like the homebrew page formerly in my namespace, I'm going to be testing some things here. Everything is subject to change and/or deletion.

Hello World Tutorial

This tutorial will guide you through all the necessary steps to make a Neo-Geo binary which displays the text "Hello world!". The language we will be using is 68000 assembly, but good knowledge of it is not needed.

Setting up the Development Environment

  1. Download the latest version of MAME and extract the contents somewhere you can easily remember (e.g. a directory like C:\mame\ or ~/mame/).
  2. In order to run Neo-Geo software on MAME, you will need to create (or find) dumps of the various ROMs on the system motherboard. Typically these ROMs are packaged in a file called neogeo.zip. If you manage to find this zip file, copy it into the roms subdirectory of where you installed MAME. Otherwise, you will need a few files in the roms/neogeo/ subdirectory: 000-lo.lo (64KiB, the LO ROM), sm1.sm1 (128KiB, the M1 ROM for sound), sp-s2.sp1 (128KiB, the System ROM) and sfix.sfix (128KiB, the SFIX ROM).