<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.neogeodev.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Iq+132</id>
	<title>NeoGeo Development Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.neogeodev.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Iq+132"/>
	<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php/Special:Contributions/Iq_132"/>
	<updated>2026-05-16T06:42:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Development_tools&amp;diff=8492</id>
		<title>Development tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Development_tools&amp;diff=8492"/>
		<updated>2025-06-17T23:13:26Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==68000==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Assemblers&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| [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) || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [http://sun.hasenbraten.de/vasm/ vasm] || Volker Barthelmann, et al || Multi-target assembler || (multiple) || Provided as source code&amp;lt;br/&amp;gt;&amp;quot;official&amp;quot; binaries are for older versions || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| 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]]&lt;br /&gt;
|-&lt;br /&gt;
| Maccer || Michael Hope || Pre-processor for AS-series assemblers || (multiple) || Provided as source code and Windows binary || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [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 || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| SNASM68K || S.N. Systems || 680x0 assembler || Windows || &amp;amp;nbsp; || [http://segaretro.org/SNASM68K SNASM68K at Sega Retro]&amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;(Modified version by Nemesis)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Compilers&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| NeoDev kit || Fabrice Martinez, Jeff Kurtz, et al || GCC compiler and library || (multiple) || &amp;amp;nbsp; || [[File:NeoDev001.zip]]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Disassemblers&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| IRA || Tim Ruehsen, ported by Antirad || Intelligent ReAssembler for M680x0 || (multiple) || PC port of an Amiga app; provided as source (&amp;quot;PC&amp;quot;) and binary (Windows) || [[File:Ira.zip]]&lt;br /&gt;
|-&lt;br /&gt;
| unidasm || MAMEdev || Universal Disassembler || (multiple) || Included with the Windows MAME distribution; can be built from source || &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Z80==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Assemblers&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| [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) || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [http://sun.hasenbraten.de/vasm/ vasm] || Volker Barthelmann, et al || Multi-target assembler || (multiple) || Provided as source code&amp;lt;br/&amp;gt;&amp;quot;official&amp;quot; binaries are for older versions || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [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]&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.nongnu.org/z80asm/ z80asm] || Bas Wijnen (and others?) || Z80 assembler || (multiple) || Provided as source code || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Compilers&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| 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]]&lt;br /&gt;
|-&lt;br /&gt;
| [http://sdcc.sourceforge.net/ SDCC] || Sandeep Dutta, et al || &amp;quot;Small Device C Compiler&amp;quot; || (multiple) || Provided as source code and binaries (various platforms) || [http://sdcc.sourceforge.net/snap.php Snapshot Builds]&lt;br /&gt;
|-&lt;br /&gt;
| [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]&amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;(Hit escape as soon as you see the links for &amp;quot;latest&amp;quot;)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Disassemblers&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| DASM || Charles Doty || Z80 disassembler || DOS || Source code and binary included. || [[File:dasmz80.zip]]&lt;br /&gt;
|-&lt;br /&gt;
| [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) || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| unidasm || MAMEdev || Universal Disassembler || (multiple) || Included with the Windows MAME distribution; can be built from source || &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Source Editors==&lt;br /&gt;
There are a lot of source code editors out there... Use whatever you&#039;re comfortable with (hopefully one with 68000 and Z80 syntax highlighting).&lt;br /&gt;
&lt;br /&gt;
==Sound and Music==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Music Drivers and Tools&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| [[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] || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [http://gendev.spritesmind.net/page-mvst.html MVSTracker Suite] || Pascal Bosquet, Kaneda || Modified version of MVSTracker || Windows || supports Mega Drive as well. Neo-Geo driver still doesn&#039;t work on hardware. || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Sound Editors&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.goldwave.com/release.php GoldWave] || GoldWave Inc. || commercial sound editor || Windows || &amp;amp;nbsp; || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.sonycreativesoftware.com/soundforgesoftware Sound Forge] || Sony || commercial sound editor || Windows, Mac || &amp;amp;nbsp; || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [http://audacity.sourceforge.net/ Audacity] || Audacity developers || open-source sound editor || (multiple) || &amp;amp;nbsp; || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Sound Encoders&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/freem/adpcma ADPCM-A encoder] || freem || Command-line ADPCM-A encoder || (multiple) || Provided as source code and binary (Windows) || &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [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]]&lt;br /&gt;
|-&lt;br /&gt;
| [[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]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Graphics==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Graphics Viewers and Editors&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| [[YY-CHR]] || YY || multi-format tile editor || Windows || FIX files require plugin (YY-CHR.NET only, see below); Sprites need conversion (see tools below) || [http://www.romhacking.net/utils/119/ YY-CHR 0.99]&lt;br /&gt;
|-&lt;br /&gt;
| NGFX || blastar || Fix, Sprite, TITLE_*.SYS viewer/editor; LOGO_*.SYS viewer || Windows || WIP; not yet released. || [https://www.romhacking.net/download/utilities/1175/]&lt;br /&gt;
|-&lt;br /&gt;
| neospriteviewer || Matt Greer || S and C ROM tile viewer || Web || &amp;amp;nbsp; || [https://neospriteviewer.mattgreer.dev site]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=6 style=&amp;quot;background-color:#ccc&amp;quot;|Graphics Converters and Tools&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| [[DATLib]] graphics tools || HPMAN || Tools used to process and display graphics on Neo-Geo. || Windows || Animator, BuildChar, CharSplit, Framer || [https://www.dropbox.com/s/wqviye5xxzktr6y/DATlib_0.3.rar?dl=0 download]&lt;br /&gt;
|-&lt;br /&gt;
| [[NGGTool|NeoGeo Graphics ToolSuite]] || evo || Tool to convert between SNES/SFC and Neo-Geo graphics. || Windows  || Fix conversion is botched (see page for details) || [http://furrtek.free.fr/noclass/neogeo/nggts.zip NGGTS]&lt;br /&gt;
|-&lt;br /&gt;
| Sprite graphics converter || IQ || Converts MVS graphics (.c*) to CD graphics (.SPR). || Windows || &amp;amp;nbsp; || [http://furrtek.free.fr/noclass/neogeo/gfxmvstocd.zip MVS to CD sprite converter]&lt;br /&gt;
|-&lt;br /&gt;
| [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)&amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;Further work required for converting to Cart (split files by words (2 bytes)) and CD (byteswap file)-usable files.&amp;lt;/small&amp;gt; || [http://ajworld.net/neogeodev/utils/neosprconv.zip main download]&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Kannagi/Neoconvert Neoconvert] || Kannagi || Convert PNG to rom Cx with map, palette and HiColor. || Windows,Linux ||  || [https://github.com/Kannagi/Neoconvert download]&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Kannagi/Neoextract Neoextract] || Kannagi || extract rom Cx or s1 to bmp. || Windows,Linux ||  || [https://github.com/Kannagi/Neoextract download]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/city41/sromcrom sromcrom] || Matt Greer || Generate S and C ROMs from images, generates corresponding source code as well || cross platform ||  || [https://github.com/city41/sromcrom download]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [https://neo-source.com/index.php?topic=4180.msg37936 buildobj] || iq_132 || Compress / Decompress NeoGeo CD OBJ files || Windows || || [https://neo-source.com/index.php?topic=4180.msg37936 buildobj]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other Tools==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !! Author(s) !! Description !! Platform(s) !! Notes !! Download&lt;br /&gt;
|-&lt;br /&gt;
| MemCardTool || Fabrice Martinez || Memory card manager || Windows || &amp;amp;nbsp; || [[File:memcardtool.zip]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/freem/romwak ROMwak] || Jeff Kurtz, ported by freem || Binary image manipulation tool || (multiple) || Provided as source code and binary (Windows) || &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=OBJ_file&amp;diff=8491</id>
		<title>OBJ file</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=OBJ_file&amp;diff=8491"/>
		<updated>2025-06-17T20:58:24Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OBJ files contain the [[sprites]] graphics (equivalent to the [[C ROM]]s on [[:Category:cartridge systems|cartridge systems]]). Data is compressed however using a simple RLE compression removing runs with a value of 0x00000000. Once decompressed the format is described here: [[sprite graphics format]].&lt;br /&gt;
&lt;br /&gt;
==RLE compression==&lt;br /&gt;
&lt;br /&gt;
* First long word value is the compressed data length (/4-1).&lt;br /&gt;
* The system works by checking single long words at a time.&lt;br /&gt;
* When a zero value is found it is stored and the next value is checked. A fill of zero is created to match the value read unless it is zero.&lt;br /&gt;
* Decompressed data can be a maximum of 1MByte (the size of a sprite bank) in size or the data will overflow the Upload Zone at $eXXXXX and start writing data at $fXXXXX, causing the hardware to crash or hang.&lt;br /&gt;
* The compressed data is sector-aligned (2KB).&lt;br /&gt;
* CDZ units will overwrite the filenames for OBJ with SPR and force loading SPR files anyway. &lt;br /&gt;
** For compatibility, a SPR copy of the sprite data with a corresponding file name must be stored on the disc image along with the OBJ file.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
compressed:&lt;br /&gt;
&lt;br /&gt;
0x00000007, 0x11111111, 0x00000000, 0x00000003, 0x22222222, 0x00000000, 0x00000000, 0x33333333, 0x44444444&lt;br /&gt;
&lt;br /&gt;
decompressed:&lt;br /&gt;
&lt;br /&gt;
0x11111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x22222222, 0x00000000, 0x33333333, 0x44444444&lt;br /&gt;
&lt;br /&gt;
This system will not compress data very well unless there are large areas of zero data within the decompressed sprite data. This is due to a single zero value being inflated by 100% to let the decompressor know it is not a run. To my current knowledge only Art of Fighting uses the OBJ format, however Alpha Mission II does have OBJ files included, but are not loaded.&lt;br /&gt;
&lt;br /&gt;
For reference below is a 68000 code snippet from bios TOP-SP1 that handles decompresses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
C0BC5A  203C 00E0 0000             MOVE.L   #0xE00000,D0&lt;br /&gt;
C0BC60  D0AD 7EF4                  ADD.L    (0x7EF4,A5),D0&lt;br /&gt;
C0BC64  2240                       MOVEA.L  D0,A1                      &amp;lt;---- Where to decompress data&lt;br /&gt;
C0BC66  206D 7EF8                  MOVEA.L  (0x7EF8,A5),A0&lt;br /&gt;
C0BC6A  7000                       MOVEQ    #0x0,D0&lt;br /&gt;
C0BC6C  2E18                       MOVE.L   (A0)+,D7                   &amp;lt;---- Get Length&lt;br /&gt;
C0BC6E  6738                       BEQ.S    *+0x3A [0xC0BCA8]&lt;br /&gt;
C0BC70  22D8                       MOVE.L   (A0)+,(A1)+                &amp;lt;---- Move single long word&lt;br /&gt;
C0BC72  6712                       BEQ.S    *+0x14 [0xC0BC86]          &amp;lt;---- Branch if zero.&lt;br /&gt;
C0BC74  51CF FFFA                  DBF      D7,*-0x4 [0xC0BC70]        &amp;lt;---- check data end&lt;br /&gt;
C0BC78  2009                       MOVE.L   A1,D0&lt;br /&gt;
C0BC7A  0480 00E0 0000             SUBI.L   #0xE00000,D0&lt;br /&gt;
C0BC80  2B40 7EF4                  MOVE.L   D0,(0x7EF4,A5)&lt;br /&gt;
C0BC84  4E75                       RTS&lt;br /&gt;
&lt;br /&gt;
C0BC86  2C18                       MOVE.L   (A0)+,D6                   &amp;lt;---- Get next value&lt;br /&gt;
C0BC88  51CE 0014                  DBF      D6,*+0x12 [0xC0BC9E]       &amp;lt;---- Decompress if non zero&lt;br /&gt;
C0BC8C  51CF FFE2                  DBF      D7,*-0x1C [0xC0BC70]       &amp;lt;---- Check data end&lt;br /&gt;
C0BC90  2009                       MOVE.L   A1,D0&lt;br /&gt;
C0BC92  0480 00E0 0000             SUBI.L   #0xE00000,D0&lt;br /&gt;
C0BC98  2B40 7EF4                  MOVE.L   D0,(0x7EF4,A5)&lt;br /&gt;
C0BC9C  4E75                       RTS&lt;br /&gt;
&lt;br /&gt;
C0BC9E  22C0                       MOVE.L   D0,(A1)+                   &amp;lt;---- Recreate zero run&lt;br /&gt;
C0BCA0  51CE FFFC                  DBF      D6,*-0x2 [0xC0BC9E]        &amp;lt;---- and Loop until complete&lt;br /&gt;
C0BCA4  51CF FFCA                  DBF      D7,*-0x34 [0xC0BC70]       &amp;lt;---- Check data end&lt;br /&gt;
&lt;br /&gt;
C0BCA8  2009                       MOVE.L   A1,D0&lt;br /&gt;
C0BCAA  0480 00E0 0000             SUBI.L   #0xE00000,D0&lt;br /&gt;
C0BCB0  2B40 7EF4                  MOVE.L   D0,(0x7EF4,A5)&lt;br /&gt;
C0BCB4  4E75                       RTS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:CD systems]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Slot_check_security&amp;diff=8469</id>
		<title>Slot check security</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Slot_check_security&amp;diff=8469"/>
		<updated>2025-03-31T14:02:36Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:S3warning.png|frame|Warning screen as shown by [[Sengoku 3]] when booting on MVS hardware with BIOS_MVS_FLAG set to 0 (AES mode).]]&lt;br /&gt;
&lt;br /&gt;
Slot checking is a MVS security measure added in some games produced after 1998 due to the emergence of [[bootleg MVS boards]]. It displays a warning screen and locks the game up if some checks fail.&lt;br /&gt;
&lt;br /&gt;
Someone who would want to bypass this check will typically search for the warning text string in the [[P ROM]] and references to it in the code. Such text can&#039;t be found because the checking routine uses a XORed version of the same text instead, certainly to confuse hackers.&lt;br /&gt;
&lt;br /&gt;
=KOF 98=&lt;br /&gt;
&lt;br /&gt;
If the game figures out it is being run for the first time on the system (thanks to [[backup RAM]] data), it forces a [[watchdog]] reset. If the system doesn&#039;t reset itself after a certain amount of time (due to the eventual absence of the watchdog circuit), the game displays the warning screen and locks up.&lt;br /&gt;
&lt;br /&gt;
=Other games=&lt;br /&gt;
&lt;br /&gt;
*The calendar data zone in the [[BIOS RAM locations|BIOS RAM]] is cleared, then [[READ_CALENDAR]] is called. If {{BR|BIOS_MONTH}} is greater than 13 (should be 12 ? Is that a bug ?), the check fails. This causes bootleg boards with no [[RTC]] to trigger the security.&lt;br /&gt;
*If {{BR|BIOS_MVS_FLAG}} is zero (BIOS in AES mode), and bit 7 of {{Reg|REG_STATUS_B}} is set (MVS hardware), the check fails. This causes bootleg boards using a copy of the AES system ROM or those that don&#039;t handle REG_STATUS_B reads to trigger the security.&lt;br /&gt;
&lt;br /&gt;
Depending on the result of those checks, the value $8B55 (pass) or $9DBD (fail) is written to [[VRAM]] at $7FFF. This furthermore verifies that the board has full VRAM.&lt;br /&gt;
&lt;br /&gt;
That VRAM value is then read back and added to $74AB (=$10000 if checks passed) to set the byte at $10FCEF (fail) or not.&lt;br /&gt;
&lt;br /&gt;
A later version of this procedure also times the Z80 reply to command $01. $10FCEE = $FF if Z80 was too slow.&lt;br /&gt;
&lt;br /&gt;
Todo: Add more details.&lt;br /&gt;
&lt;br /&gt;
==Use by games==&lt;br /&gt;
&lt;br /&gt;
As seen in MAME&#039;s source ([[https://github.com/mamedev/mame/blob/master/src/mame/drivers/neogeo.cpp neogeo.cpp]]), a few games are known to do this check:&lt;br /&gt;
&lt;br /&gt;
*[[Nightmare in the Dark]]&lt;br /&gt;
 - Can be disabled with RTS at $19978&lt;br /&gt;
*[[The King of Fighters 2000]]&lt;br /&gt;
*[[Sengoku 3]]: MVS SLOT CHECK Ver2.30 00/04/25&lt;br /&gt;
*[[Matrimelee]]&lt;br /&gt;
*[[Metal Slug 5]]&lt;br /&gt;
&lt;br /&gt;
[[Sengoku 3]]: Checks M1 ROM too, displays &amp;quot;M1-ROM ERROR.&amp;quot; if Z80 doesn&#039;t reply to command 1 in $7FFF iterations loop.&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=NEO-CMC&amp;diff=8450</id>
		<title>NEO-CMC</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=NEO-CMC&amp;diff=8450"/>
		<updated>2025-01-03T05:42:07Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ChipInfo&lt;br /&gt;
|picture=crt_cmc.jpg&lt;br /&gt;
|pkg=QFP180&lt;br /&gt;
|manu=toshiba&lt;br /&gt;
|date=1999 ?&lt;br /&gt;
|gates=A lot&lt;br /&gt;
|used_on={{PCB|CHAFIO}}...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[File:brd_cmcnoref.jpg|thumb|&amp;quot;CMC50&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
Late SNK custom chip used for protection, bankswitching and latching on [[CHAFIO]] [[CHA board]]s.&lt;br /&gt;
&lt;br /&gt;
Descrambling/decryption infos can be found in [[https://github.com/mamedev/mame/blob/master/src/devices/bus/neogeo/prot_cmc.cpp  MAME:prot_cmc.c]]&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
This chip is a TC190G series Toshiba ASIC developed between 1990 and 1994. Two versions of the chip are known to exist:&lt;br /&gt;
&lt;br /&gt;
*TC190G06CF7&#039;&#039;&#039;042&#039;&#039;&#039;&lt;br /&gt;
*TC190G06CF7&#039;&#039;&#039;050&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
They contain the logic for:&lt;br /&gt;
*{{Chipname|NEO-ZMC2}}&lt;br /&gt;
*{{Chipname|NEO-273}}&lt;br /&gt;
*New scrambling system that interlaces M1 + (C* + S1) to decrypt all the graphics ROMs data in real time (042 version).&lt;br /&gt;
*New scrambling system that interlaces M1 + (C* + S1) to decrypt all the graphics ROMs data and Sound Driver ROM data in real time (050 version).&lt;br /&gt;
&lt;br /&gt;
The first released NEO-MVS CHAFIO PCBs came out with the &#039;&#039;&#039;042&#039;&#039;&#039; version of NEO-CMC, on the following cartridges:&lt;br /&gt;
*[[Zupapa!]]&lt;br /&gt;
*[[The King of Fighters &#039;99 - Millennium Battle]]&lt;br /&gt;
*[[Ganryu]]&lt;br /&gt;
*[[Garou - Mark of the Wolves]]&lt;br /&gt;
*[[Strikers 1945 Plus]]&lt;br /&gt;
*[[Prehistoric Isle 2]]&lt;br /&gt;
*[[Metal Slug 3]]&lt;br /&gt;
*[[Bang Bead]]&lt;br /&gt;
*[[Nightmare in the Dark]]&lt;br /&gt;
*[[Sengoku 3]]&lt;br /&gt;
&lt;br /&gt;
On this version only the [[S ROM|S1]] and [[C ROM]]s are encrypted and M1 remains unencrypted. Almost one year later, SNK decided to add one more layer, this time also encrypting M1. This new NEO-CMC chip had the &#039;&#039;&#039;050&#039;&#039;&#039; reference and was found in the following cartridges:&lt;br /&gt;
*[[Jockey Grand Prix]]&lt;br /&gt;
*[[The King of Fighters 2000]]&lt;br /&gt;
*[[The King of Fighters 2001]]&lt;br /&gt;
*[[Metal Slug 4]]&lt;br /&gt;
*[[Rage of the Dragons]]&lt;br /&gt;
*[[The King of Fighters 2002]]&lt;br /&gt;
*[[Matrimelee]]&lt;br /&gt;
*[[Pochi and Nyaa]]&lt;br /&gt;
*[[Metal Slug 5]]&lt;br /&gt;
*[[SNK vs. Capcom - SVC Chaos]]&lt;br /&gt;
*[[Samurai Shodown V]]&lt;br /&gt;
*[[The King of Fighters 2003]]&lt;br /&gt;
*[[Samurai Shodown V Special]]&lt;br /&gt;
&lt;br /&gt;
To this day, no one has produced a reproduction of these chips.&lt;br /&gt;
&lt;br /&gt;
==Fix handling==&lt;br /&gt;
&lt;br /&gt;
See [[fix bankswitching]].&lt;br /&gt;
&lt;br /&gt;
==Encryption==&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
=Pinout=&lt;br /&gt;
[[File:Neocmc_7050_7042_pinout.png|x600px]]&lt;br /&gt;
&lt;br /&gt;
OpenOffice Draw file: [[File:Neocmc_7050_7042.odg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signals:&#039;&#039;&#039;&lt;br /&gt;
 CXe_D[0..15]: C odd data bus&lt;br /&gt;
 CXo_D[0..15]: C even data bus&lt;br /&gt;
 CX_A[0..21]: C1~8 address bus (NEO-MVS &amp;amp; NEO-AEG)&lt;br /&gt;
 CX_A[0..&#039;&#039;&#039;22&#039;&#039;&#039;]: C1~4 address bus (&#039;&#039;&#039;NEO-MVH only&#039;&#039;&#039;)&lt;br /&gt;
 &lt;br /&gt;
 Pin : 32 connects to Mitsumi (PST600D) reset generator to re-initialize the NEO-CMC in case of power failure.&lt;br /&gt;
 Pins: 87 and 88 contains a RC circuit clock driver like in a 8085 with X1 and X2 pinouts&lt;br /&gt;
 Pins: 89 and 92 are interconnected.&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pins: 62~69, 71~78, 80~84 are configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVS CHAFIO&#039;&#039;&#039; as &#039;&#039;&#039;CR31~CR24, CR23~CR16, CR15~CR11&#039;&#039;&#039; respectively&lt;br /&gt;
      NEO-AEG CHAFIO as &#039;&#039;&#039;  NC~NC  ,   NC~NC  ,   NC~NC&#039;&#039;&#039;&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pins: 102, 103~106, 107~110, 112~113 are configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVS CHAFIO&#039;&#039;&#039; as &#039;&#039;&#039;CR10, CR9~CR6 ,  CR5~CR2 ,  CR1~CR0&#039;&#039;&#039;&lt;br /&gt;
      NEO-AEG CHAFIO as &#039;&#039;&#039;NC  ,GBD3~GBD0, GAD3~GAD0, DOTB~DOTA&#039;&#039;&#039;&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin : 94 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVS CHAFIO&#039;&#039;&#039; as &#039;&#039;&#039;NC &#039;&#039;&#039;&lt;br /&gt;
      NEO-AEG CHAFIO as &#039;&#039;&#039;12M&#039;&#039;&#039;&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :147 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVS CHAFIO&#039;&#039;&#039; (2003.07.24) as M1_CE&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVS CHAFIO&#039;&#039;&#039; (1999.06.14) as NC&lt;br /&gt;
      NEO-AEG CHAFIO (2003.07.24) as M1_CE&lt;br /&gt;
      NEO-AEG CHAFIO (1999.08.10) as NC&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :153 is configured in:&lt;br /&gt;
      NEO-MVS (ALL) as &#039;&#039;&#039;VCC&#039;&#039;&#039;&lt;br /&gt;
      NEO-AEG (ALL) as GND&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Comparing MVH PCBs vs MVS &amp;amp; AES Cartridges&#039;&#039;&#039;&lt;br /&gt;
 Pin :147 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH MVOC   (2003.11.03)&#039;&#039;&#039; as &#039;&#039;&#039;M1_CE&#039;&#039;&#039; (KOF2003 pcb)&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH MVOBR  (2003.08.04)&#039;&#039;&#039; as &#039;&#039;&#039;M1_CE&#039;&#039;&#039; (MSLUG5 pcb)&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH MVOB   (2003.07.09)&#039;&#039;&#039; as &#039;&#039;&#039;NC   &#039;&#039;&#039; (SVC pcb) - &#039;&#039;&#039;M1_CE (fixed by wirewrapps)&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH MVO    (2003.06.05)&#039;&#039;&#039; as &#039;&#039;&#039;NC   &#039;&#039;&#039; (SVC pcb) &lt;br /&gt;
      NEO-MVS CHAFIO (2003.07.24) as M1_CE&lt;br /&gt;
      NEO-MVS CHAFIO (1999.06.14) as NC&lt;br /&gt;
      NEO-AEG CHAFIO (2003.07.24) as M1_CE&lt;br /&gt;
      NEO-AEG CHAFIO (1999.08.10) as NC&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :152 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVOC)&#039;&#039;&#039; as &#039;&#039;&#039;VCC&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR)&#039;&#039;&#039; as &#039;&#039;&#039;GND&#039;&#039;&#039;&lt;br /&gt;
      NEO-MVS (ALL) as GND&lt;br /&gt;
      NEO-AEG (ALL) as GND&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :153 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (ALL)&#039;&#039;&#039; as &#039;&#039;&#039;VCC&#039;&#039;&#039;&lt;br /&gt;
      NEO-MVS (ALL) as &#039;&#039;&#039;VCC&#039;&#039;&#039;&lt;br /&gt;
      NEO-AEG (ALL) as GND&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :154 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR, MVOC)&#039;&#039;&#039; as &#039;&#039;&#039;C2C1_OE&#039;&#039;&#039;&lt;br /&gt;
      NEO-MVS (ALL) as NC&lt;br /&gt;
      NEO-AEG (ALL) as NC&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :155 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR, MVOC)&#039;&#039;&#039; as &#039;&#039;&#039;C4C3_OE&#039;&#039;&#039;&lt;br /&gt;
      NEO-MVS (ALL) as NC&lt;br /&gt;
      NEO-AEG (ALL) as NC&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :158 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR, MVOC)&#039;&#039;&#039; as &#039;&#039;&#039;NC&#039;&#039;&#039;&lt;br /&gt;
      NEO-MVS (ALL) as C8C7_OE&lt;br /&gt;
      NEO-AEG (ALL) as C8C7_OE&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :159 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR)&#039;&#039;&#039; as &#039;&#039;&#039;NC&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVOC)&#039;&#039;&#039; as &#039;&#039;&#039;C6C5_OE&#039;&#039;&#039;&lt;br /&gt;
      NEO-MVS (ALL) as &#039;&#039;&#039;C6C5_OE&#039;&#039;&#039;&lt;br /&gt;
      NEO-AEG (ALL) as &#039;&#039;&#039;C6C5_OE&#039;&#039;&#039;&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :160 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR)&#039;&#039;&#039; as &#039;&#039;&#039;NC&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVOC)&#039;&#039;&#039; as &#039;&#039;&#039;C4C3_OE&#039;&#039;&#039;&lt;br /&gt;
      NEO-MVS (ALL) as &#039;&#039;&#039;C4C3_OE&#039;&#039;&#039;&lt;br /&gt;
      NEO-AEG (ALL) as &#039;&#039;&#039;C4C3_OE&#039;&#039;&#039;&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :161 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR)&#039;&#039;&#039; as &#039;&#039;&#039;NC&#039;&#039;&#039;&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVOC)&#039;&#039;&#039; as &#039;&#039;&#039;C2C1_OE&#039;&#039;&#039;&lt;br /&gt;
      NEO-MVS (ALL) as &#039;&#039;&#039;C2C1_OE&#039;&#039;&#039;&lt;br /&gt;
      NEO-AEG (ALL) as &#039;&#039;&#039;C2C1_OE&#039;&#039;&#039;&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :189 is configured in:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR, MVOC)&#039;&#039;&#039; as &#039;&#039;&#039;A22&#039;&#039;&#039; (128Mbit) (connected from CMC to the driver input and from output to C ROM&#039;s A22)&lt;br /&gt;
      NEO-MVS (ALL) as NC&lt;br /&gt;
      NEO-AEG (ALL) as NC&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :190 is connected from CMC to the driver input, but NC from it&#039;s output:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR, MVOC)&#039;&#039;&#039; as A23 (256Mbit) (&#039;&#039;&#039;assumption&#039;&#039;&#039; it&#039;s prepared for big size C ROMs )&lt;br /&gt;
      NEO-MVS (ALL) as NC&lt;br /&gt;
      NEO-AEG (ALL) as NC&lt;br /&gt;
 -----------------------------------------------&lt;br /&gt;
 Pin :191 is connected from CMC to the driver input, but NC from it&#039;s output:&lt;br /&gt;
      &#039;&#039;&#039;NEO-MVH (MVO, MVOB, MVOBR, MVOC)&#039;&#039;&#039; as A24 (512Mbit) (&#039;&#039;&#039;assumption&#039;&#039;&#039; it&#039;s prepared for big size C ROMs)&lt;br /&gt;
      NEO-MVS (ALL) as NC&lt;br /&gt;
      NEO-AEG (ALL) as NC&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Notes&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;NOTE1:&#039;&#039;&#039; There are no pinout differences between NEO-CMC42 and NEO-CMC50 however, differences can be spotted between previous and later board releases with respect to some setup lines and pin 147. A substantial setup difference can be found comparing the boards of AES and MVS releases. The way the chip access and delivery the graphic data is different between them and both configurations are available inside the NEO-CMC that is configured by the setup of the board itself. So the NEO-CMC is &#039;&#039;&#039;interchangeable between boards&#039;&#039;&#039; between MVS, AES, and MVH embedded. See the releases at ([[CHAFIO]])&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;NOTE2:&#039;&#039;&#039; In case somebody wonders, it&#039;s impossible to downgrade or upgrade NEO-CMCs between different versions (from 42 to 50 and vice-versa). The reason is that it&#039;s impossible without preparing the game for that and the algorithm to do it is unknown.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;NOTE3:&#039;&#039;&#039; In MVH with embedded CHAFIO the NEO-CMC50 (pin 147 as M1_CE) is native present on the follow releases: 2003.08.04 (MSLUG 5) and 2003.11.03 (KOF2003). However on releases 2003.06.05 and 2003.07.09, both from SVCChaos (set1 and set2), that pin is natively configured as NC, but artificially fixed on set2 by wirewraps.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;NOTE4:&#039;&#039;&#039; In MVH release &#039;&#039;&#039;2003.11.03 (KOF2003) only&#039;&#039;&#039;, there is one configuration change that not appear in any other board AES, MVS or MVH. &#039;&#039;&#039;The pin 152 is connected to VCC&#039;&#039;&#039;. This require further investigation to check what&#039;s being switched. Perhaps from 64mbits to 128Mbits?&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;NOTE5:&#039;&#039;&#039; In MVH (ALL) the pins: &lt;br /&gt;
        189 is connected to through buffer driver to A22 (128Mbit), &lt;br /&gt;
        190 and 191 are pre-connected to the buffer drivers and left as NCs from there. &lt;br /&gt;
        The assumption here is that the CMC is ready for bigger C Roms (256Mbit and 512Mbit). &lt;br /&gt;
        Question: Would be easy left them shorted to VCC or GND. Why make parallel tracks without necessity?).&lt;br /&gt;
&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Vector_table_swap&amp;diff=8449</id>
		<title>Vector table swap</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Vector_table_swap&amp;diff=8449"/>
		<updated>2025-01-03T05:39:02Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The first $80 bytes of the [[68k memory map]] are swappable between the onboard [[System ROM]] and the cartridge&#039;s first [[P ROM]].&lt;br /&gt;
&lt;br /&gt;
When the vector tables are swapped, $00~$7F point to $C00000~$C0007F, and $C00000~$C0007F point to the data in the P ROM (if any).&lt;br /&gt;
&lt;br /&gt;
On startup or reset, the first $80 bytes are those found at $C00000~$C0007F, so that the system always starts by executing the initialisation routine.&lt;br /&gt;
&lt;br /&gt;
Right before starting a game, the cart&#039;s ROM is swapped in as well as the [[S ROM]] and [[M1 ROM]].&lt;br /&gt;
&lt;br /&gt;
Registers {{Reg|REG_SWPBIOS}} and {{Reg|REG_SWPROM}} are used for this.&lt;br /&gt;
&lt;br /&gt;
Note: The mapping of the P ROM to $C00000-$C0007F when swapping vectors is not emulated in MAME as of version 0.273.&lt;br /&gt;
&lt;br /&gt;
[[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=PRG_file&amp;diff=8448</id>
		<title>PRG file</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=PRG_file&amp;diff=8448"/>
		<updated>2025-01-02T17:50:25Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PRG files are used as the {{Chipname|68k}} program (the equivalent of [[P ROM]]s on [[:Category:cartridge systems|cartridge systems]], but the content &#039;&#039;&#039;isn&#039;t byteswapped&#039;&#039;&#039;). Several games overcome the [[DRAM|2MiB]] limit by keeping a main PRG file loaded, and only swap the ones containing data like level maps, animation tables...&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[[Logo file|LOGO_*.PRG files]] are handled differently&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Maximum file size: 1MiB (?)&lt;br /&gt;
* Type code: 0&lt;br /&gt;
* Loadable in: 68k program DRAM ($000000~$1FFFFF)&lt;br /&gt;
* Banks: 1 ($000000~$1FFFFF). Range $100000~$1FFFFF is also used for [[68k user RAM]], [[system ROM]] operations, CD buffers, ... &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pitfalls:&#039;&#039;&#039; loading files over the range $100000-$10ffff will wipe all of the 68K&#039;s work (main) RAM. This is &#039;&#039;&#039;NOT&#039;&#039;&#039; advisable.&lt;br /&gt;
&lt;br /&gt;
[[Category:CD systems]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Loading_files&amp;diff=8447</id>
		<title>Loading files</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Loading_files&amp;diff=8447"/>
		<updated>2025-01-02T17:45:40Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[BIOS calls]] &#039;&#039;&#039;BIOSF_LOADFILE&#039;&#039;&#039; ($C00552) and &#039;&#039;&#039;BIOSF_LOADFILEX&#039;&#039;&#039; ($C00564) are used to load files from the CD.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;BIOSF_LOADFILE&#039;&#039;&#039; call displays a loading animation, while BIOSF_LOADFILEX (better name ?) doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
Register A0 needs to point to a block indicating:&lt;br /&gt;
*The filename, ended by a 0 byte&lt;br /&gt;
*The bank number (8bit)&lt;br /&gt;
*An optional pad byte to align:&lt;br /&gt;
*Destination address (32bit)&lt;br /&gt;
*Zero-terminated&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
file_list&lt;br /&gt;
	dc.b	&#039;FILE1.SPR&#039;, $00	; file name&lt;br /&gt;
	dc.b	$02					; bank&lt;br /&gt;
	dc.b	$00					; padding&lt;br /&gt;
	dc.l	$00000000			; destination&lt;br /&gt;
	dc.b	&#039;FILE2.SPR&#039;, $00	; file name&lt;br /&gt;
	dc.b	$03					; bank&lt;br /&gt;
	dc.b	$00					; padding&lt;br /&gt;
	dc.l	$00000000			; destination&lt;br /&gt;
	dc.b	$00					; End of list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The destination memory is automatically chosen according to the file&#039;s extension.&lt;br /&gt;
&lt;br /&gt;
Rules:&lt;br /&gt;
*[[SPR file]]s have 1MiB banks. [[PCM file]]s have 512KiB banks. Other types aren&#039;t banked.&lt;br /&gt;
*[[FIX file]]s and [[PCM file]]s need to have their destination address multiplied by 2.&lt;br /&gt;
&lt;br /&gt;
BIOS RAM adresses for currently loaded sectors, total sectors ?...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pitfalls:&#039;&#039;&#039; Interrupts must be enabled for file loading to function.&lt;br /&gt;
&lt;br /&gt;
[[Category:CD systems]]&lt;br /&gt;
[[Category:Code]]&lt;br /&gt;
&lt;br /&gt;
==Samurai Shodown RPG Loading==&lt;br /&gt;
&lt;br /&gt;
Once the bios has handled the initial IPL loading for this game all other loading is handled by the game itself and not the bios calls above. The IPL loads file &#039;EXT_SYS.PRG&#039; to 0x132000 and all known future &#039;in game&#039; loading is handled by code in this area. Why the games uses this instead of the bios is not currently known but it may be related to the bios not being able to handle the amount of files stored on the CD disc (3831) or to optimize loading of the many small files used by the game.&lt;br /&gt;
&lt;br /&gt;
This code will need investigating to obtain a full understanding of why it is used over the bios. There may also be other bios routines not related to loading used here too.&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=ACN_file&amp;diff=8446</id>
		<title>ACN file</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=ACN_file&amp;diff=8446"/>
		<updated>2025-01-02T17:31:30Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: Iq 132 moved page ACN file to ACM file: Misspelled title: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ACM file]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=ACM_file&amp;diff=8445</id>
		<title>ACM file</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=ACM_file&amp;diff=8445"/>
		<updated>2025-01-02T17:31:30Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: Iq 132 moved page ACN file to ACM file: Misspelled title: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ACM files contain [[PCM file]] data.&lt;br /&gt;
&lt;br /&gt;
We assume this is a kind of onboard Archive file to save constantly loading the data from CD.&lt;br /&gt;
 &lt;br /&gt;
How this data is used is not yet fully known. We currently assume data is stored in the program ROM space and then moved to the correct place as needed. It is not known if this is handled by the bios or game at present.&lt;br /&gt;
&lt;br /&gt;
The game &#039;Art of Fighting&#039; is known to use this file type (PCMB.ACM is a 100% match for PCMB.PCM).&lt;br /&gt;
&lt;br /&gt;
[[Category:CD systems]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=ACM_file&amp;diff=8444</id>
		<title>ACM file</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=ACM_file&amp;diff=8444"/>
		<updated>2025-01-02T17:30:10Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ACM files contain [[PCM file]] data.&lt;br /&gt;
&lt;br /&gt;
We assume this is a kind of onboard Archive file to save constantly loading the data from CD.&lt;br /&gt;
 &lt;br /&gt;
How this data is used is not yet fully known. We currently assume data is stored in the program ROM space and then moved to the correct place as needed. It is not known if this is handled by the bios or game at present.&lt;br /&gt;
&lt;br /&gt;
The game &#039;Art of Fighting&#039; is known to use this file type (PCMB.ACM is a 100% match for PCMB.PCM).&lt;br /&gt;
&lt;br /&gt;
[[Category:CD systems]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Loading_files&amp;diff=8367</id>
		<title>Loading files</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Loading_files&amp;diff=8367"/>
		<updated>2024-11-17T04:10:08Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[BIOS calls]] &#039;&#039;&#039;BIOSF_LOADFILE&#039;&#039;&#039; ($C00552) and &#039;&#039;&#039;BIOSF_LOADFILEX&#039;&#039;&#039; ($C00564) are used to load files from the CD.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;BIOSF_LOADFILE&#039;&#039;&#039; call displays a loading animation, while BIOSF_LOADFILEX (better name ?) doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
Register A0 needs to point to a block indicating:&lt;br /&gt;
*The filename, ended by a 0 byte&lt;br /&gt;
*The bank number (8bit)&lt;br /&gt;
*An optional pad byte to align:&lt;br /&gt;
*Destination address (32bit)&lt;br /&gt;
*Zero-terminated&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
file_list&lt;br /&gt;
	dc.b	&#039;FILE1.SPR&#039;, $00	; file name&lt;br /&gt;
	dc.b	$02					; bank&lt;br /&gt;
	dc.b	$00					; padding&lt;br /&gt;
	dc.l	$00000000			; destination&lt;br /&gt;
	dc.b	&#039;FILE2.SPR&#039;, $00	; file name&lt;br /&gt;
	dc.b	$03					; bank&lt;br /&gt;
	dc.b	$00					; padding&lt;br /&gt;
	dc.l	$00000000			; destination&lt;br /&gt;
	dc.b	$00					; End of list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The destination memory is automatically chosen according to the file&#039;s extension.&lt;br /&gt;
&lt;br /&gt;
Rules:&lt;br /&gt;
*[[SPR file]]s have 1MiB banks. [[PCM file]]s have 512KiB banks. Other types aren&#039;t banked.&lt;br /&gt;
*[[FIX file]]s and [[PCM file]]s need to have their destination address multiplied by 2.&lt;br /&gt;
&lt;br /&gt;
BIOS RAM adresses for currently loaded sectors, total sectors ?...&lt;br /&gt;
&lt;br /&gt;
[[Category:CD systems]]&lt;br /&gt;
[[Category:Code]]&lt;br /&gt;
&lt;br /&gt;
==Samurai Shodown RPG Loading==&lt;br /&gt;
&lt;br /&gt;
Once the bios has handled the initial IPL loading for this game all other loading is handled by the game itself and not the bios calls above. The IPL loads file &#039;EXT_SYS.PRG&#039; to 0x132000 and all known future &#039;in game&#039; loading is handled by code in this area. Why the games uses this instead of the bios is not currently known but it may be related to the bios not being able to handle the amount of files stored on the CD disc (3831) or to optimize loading of the many small files used by the game.&lt;br /&gt;
&lt;br /&gt;
This code will need investigating to obtain a full understanding of why it is used over the bios. There may also be other bios routines not related to loading used here too.&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Logo_file&amp;diff=8366</id>
		<title>Logo file</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Logo_file&amp;diff=8366"/>
		<updated>2024-11-15T13:04:09Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:cdzload.png|frame|CDZ default loading screen.]]&lt;br /&gt;
&lt;br /&gt;
[[File:kof96load.png|frame|KOF 96 custom loading screen (LOGO_E.PRG).]]&lt;br /&gt;
&lt;br /&gt;
LOGO files are optional files used to create custom CD loading screens.&lt;br /&gt;
&lt;br /&gt;
The [[system ROM]] automatically loads one of the following files according to the console&#039;s [[nationality]] setting, if present in the CD&#039;s root:&lt;br /&gt;
&lt;br /&gt;
* LOGO_E.PRG for European nationality.&lt;br /&gt;
* LOGO_U.PRG for US nationality.&lt;br /&gt;
* LOGO_J.PRG for Japanese nationality.&lt;br /&gt;
&lt;br /&gt;
The files must not be larger than ?? bytes. (KOF &#039;99 uses 16.3KB files)&lt;br /&gt;
&lt;br /&gt;
=File format=&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Size&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|Word&lt;br /&gt;
|Flags&lt;br /&gt;
|-&lt;br /&gt;
|Longword&lt;br /&gt;
|Data type&lt;br /&gt;
|-&lt;br /&gt;
|Longword&lt;br /&gt;
|Data pointer&lt;br /&gt;
|-&lt;br /&gt;
|Longword&lt;br /&gt;
|Data type&lt;br /&gt;
|-&lt;br /&gt;
|Longword&lt;br /&gt;
|Data pointer&lt;br /&gt;
|-&lt;br /&gt;
|...&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Longword&lt;br /&gt;
|0xFFFFFFFF terminator&lt;br /&gt;
|-&lt;br /&gt;
|?&lt;br /&gt;
|Data previously pointed to...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first word represents flags:&lt;br /&gt;
&lt;br /&gt;
* Bit 0: If set, do not draw the default &#039;NOW LOADING please wait&#039; graphic (see picture top right).&lt;br /&gt;
* Bit 1: If set, no progress bar is drawn.&lt;br /&gt;
* Bit 2: If set, no animation is drawn.&lt;br /&gt;
&lt;br /&gt;
No other bits seem to be checked by the system ROM.&lt;br /&gt;
&lt;br /&gt;
The rest of the file&#039;s contents are &amp;quot;data type - pointer&amp;quot; longword pairs. The type codes used must be sorted in an ascending order. The file is terminated with a $FFFFFFFF type code. The valid type codes are:&lt;br /&gt;
&lt;br /&gt;
*1: Fix tiles&lt;br /&gt;
*2: Palette&lt;br /&gt;
*3: Tile map&lt;br /&gt;
*4: Animation map&lt;br /&gt;
&lt;br /&gt;
The pointer values are absolute, starting from $120000.&lt;br /&gt;
&lt;br /&gt;
==Fix tiles data format==&lt;br /&gt;
&lt;br /&gt;
* Offset (longword). Example: $4000 = start at tile #512&lt;br /&gt;
* Size (longword). Example: $2000 = load 256 tiles&lt;br /&gt;
* Tile data...&lt;br /&gt;
&lt;br /&gt;
Like the regular [[fix graphics format]], but byteswapped.&lt;br /&gt;
&lt;br /&gt;
==Palette data format==&lt;br /&gt;
&lt;br /&gt;
* Palette number (word).&lt;br /&gt;
* 16 words of [[palettes|color data]].&lt;br /&gt;
&lt;br /&gt;
Note: The default progress bar seems to use palette 0, be careful not to overwrite it. Remember that fix tiles can only use the 16 first palettes.&lt;br /&gt;
&lt;br /&gt;
==Map data format==&lt;br /&gt;
&lt;br /&gt;
All values are words.&lt;br /&gt;
&lt;br /&gt;
* Start fix map address ($7102 is good).&lt;br /&gt;
* Width in tiles.&lt;br /&gt;
* Height in tiles.&lt;br /&gt;
* Fix tilemap data as found in [[VRAM]]...&lt;br /&gt;
&lt;br /&gt;
Note: Mapping is done from left to right, top to bottom.&lt;br /&gt;
&lt;br /&gt;
==Animation map data format==&lt;br /&gt;
&lt;br /&gt;
All values are words.&lt;br /&gt;
&lt;br /&gt;
* Start fix map address ($7102 is good).&lt;br /&gt;
* Width in tiles.&lt;br /&gt;
* Height in tiles.&lt;br /&gt;
* Number of frames in animation.&lt;br /&gt;
* Animation speed (in frames).&lt;br /&gt;
* Fix tilemap data as found in [[VRAM]]...&lt;br /&gt;
&lt;br /&gt;
==Using LOGO files for in-game loading==&lt;br /&gt;
&lt;br /&gt;
By default the system ROM will always use the initial LOGO file during in game loading sequences. It is possible to change this by loading new data over the buffered LOGO file data at $120000. How this gets loaded is not yet confirmed but its suspected that games request the data to be loaded as it would any other data given there is not need for &#039;LOGO&#039; to be in the file name in this situation. It may also be possible the system ROM looks out for data being loaded into this region before drawing.&lt;br /&gt;
&lt;br /&gt;
The ability to change the default progress bar (handled by the system ROM) is also available. The system ROM places the start address of its code to handle progress bar drawing at $11C80C. This code is then always called via &#039;MOVEA.L 0x11C80C,A0&#039;, &#039;JSR(A0)&#039;. To use a custom progress bar simply place the start address of your custom progress bar code at $11C80C. Current progress bar state is held at address $10F691. Your code should handle all elements of drawing the progress bar.&lt;br /&gt;
&lt;br /&gt;
It appears games plant their custom progress bar code into the default LOGO file as well as any further files that get loaded to this range. Below is the routine used by Samurai Shodown IV as seen in file &#039;JL_ST1.PRG&#039; once in RAM. The main game program code places 0x120086 to $11C80C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
120086  4EF9 0012 4AD0             JMP      0x124AD0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
124AD0  4DF9 003C 0000             LEA      0x3C0000,A6&lt;br /&gt;
124AD6  41F9 0012 4B00             LEA      0x124B00,A0&lt;br /&gt;
124ADC  1239 0010 F691             MOVE.B   0x10F691,D1&lt;br /&gt;
124AE2  0241 00F0                  ANDI.W   #0xF0,D1&lt;br /&gt;
124AE6  D0C1                       ADDA.W   D1,A0&lt;br /&gt;
124AE8  203C 719B A200             MOVE.L   #0x719BA200,D0&lt;br /&gt;
124AEE  7E0F                       MOVEQ    #0xF,D7&lt;br /&gt;
124AF0  1018                       MOVE.B   (A0)+,D0&lt;br /&gt;
124AF2  2C80                       MOVE.L   D0,(A6)&lt;br /&gt;
124AF4  0680 0020 0000             ADDI.L   #0x200000,D0&lt;br /&gt;
124AFA  51CF FFF4                  DBF      D7,*-0xA [0xC00422]&lt;br /&gt;
124AFE  4E75                       RTS&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Notes==&lt;br /&gt;
Attempting to load a LOGO with an Animation speed of less than 5 can cause crashes. [Tested on a Japanese region top loader with Neo CD Loader installed]&lt;br /&gt;
[[Category:CD systems]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=CARD&amp;diff=8364</id>
		<title>CARD</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=CARD&amp;diff=8364"/>
		<updated>2024-08-21T15:42:37Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=CARD ($C00468)=&lt;br /&gt;
&lt;br /&gt;
The CARD [[system ROM]] call is used to perform operations on the [[memory card]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; register contents aren&#039;t preserved !&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
&lt;br /&gt;
The following variables are used when calling CARD:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Address&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;DEF name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Set by&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC4&lt;br /&gt;
|BIOS_CARD_COMMAND&lt;br /&gt;
|byte&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Command code to execute&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC6&lt;br /&gt;
|BIOS_CARD_ANSWER&lt;br /&gt;
|byte&lt;br /&gt;
|System ROM&lt;br /&gt;
|Answer code (see below)&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC8&lt;br /&gt;
|BIOS_CARD_START&lt;br /&gt;
|longword&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Pointer to data&lt;br /&gt;
|-&lt;br /&gt;
|$10FDCC&lt;br /&gt;
|BIOS_CARD_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Size of data&lt;br /&gt;
|-&lt;br /&gt;
|$10FDCE&lt;br /&gt;
|BIOS_CARD_FCB&lt;br /&gt;
|word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Game [[NGH number]]&lt;br /&gt;
|-&lt;br /&gt;
|$10FDD0&lt;br /&gt;
|BIOS_CARD_SUB&lt;br /&gt;
|byte or word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Game save sub-number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following temporary variables are used when calling CARD :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Address&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;DEF name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$10FD04&lt;br /&gt;
|BIOS_CARD_DIRECTORY_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of directory&lt;br /&gt;
|-&lt;br /&gt;
|$10FD08&lt;br /&gt;
|BIOS_CARD_BLOCK_NUMBER&lt;br /&gt;
|word&lt;br /&gt;
|Number of blocks&lt;br /&gt;
|-&lt;br /&gt;
|$10FD0A&lt;br /&gt;
|BIOS_CARD_FAT_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of FAT&lt;br /&gt;
|-&lt;br /&gt;
|$10FD0E&lt;br /&gt;
|BIOS_CARD_FAT_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|Size of FAT&lt;br /&gt;
|-&lt;br /&gt;
|$10FD10&lt;br /&gt;
|BIOS_CARD_DATA_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of data&lt;br /&gt;
|-&lt;br /&gt;
|$10FD14&lt;br /&gt;
|BIOS_CARD_TYPE&lt;br /&gt;
|word&lt;br /&gt;
|&lt;br /&gt;
* $0 : 8 bits card&lt;br /&gt;
* $01 : 16 bits card&lt;br /&gt;
* $80 : 16 bits wide weird card (todo)&lt;br /&gt;
|-&lt;br /&gt;
|$10FD16&lt;br /&gt;
|BIOS_CARD_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|Size of the card&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BIOS_CARD_ANSWER==&lt;br /&gt;
&lt;br /&gt;
This variable contains the result of the operation. Bit 7 indicates an error.&lt;br /&gt;
&lt;br /&gt;
* $00: Normal completion&lt;br /&gt;
* $80: No card inserted&lt;br /&gt;
* $81: Card isn&#039;t formatted&lt;br /&gt;
* $82: Requested data doesn&#039;t exist&lt;br /&gt;
* $83: FAT error&lt;br /&gt;
* $84: Card is full&lt;br /&gt;
* $85: Write disabled or ROM card&lt;br /&gt;
&lt;br /&gt;
=Commands=&lt;br /&gt;
&lt;br /&gt;
==$0: Format memory card==&lt;br /&gt;
&lt;br /&gt;
Formats the memory card.&lt;br /&gt;
&lt;br /&gt;
==$1: Data search==&lt;br /&gt;
&lt;br /&gt;
Return the number of save files for the specified game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_SUB contains a 16 bit mask for all 16 available blocks for the game. If a bit is set, then the corresponding save block exists.&lt;br /&gt;
&lt;br /&gt;
==$2: Load data==&lt;br /&gt;
&lt;br /&gt;
Loads the specified save file in RAM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
* BIOS_CARD_START must be a pointer to which the save data will be loaded.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the size of the save (usually 64 bytes).&lt;br /&gt;
&lt;br /&gt;
==$3: Save data==&lt;br /&gt;
&lt;br /&gt;
Save from RAM to the specified save file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
* BIOS_CARD_START must be a pointer from which the save data will be copied.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the size of the save (usually 64 bytes).&lt;br /&gt;
&lt;br /&gt;
==$4: Delete data==&lt;br /&gt;
&lt;br /&gt;
Delete the specified file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
&lt;br /&gt;
==$5: Read data title==&lt;br /&gt;
&lt;br /&gt;
Read the data title of a save file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_START must be a pointer to which the title string will be copied.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the game save number ?&lt;br /&gt;
&lt;br /&gt;
==$6: Save user name==&lt;br /&gt;
&lt;br /&gt;
Set the user name of the memory card.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_START must be a pointer to the user name&#039;s string (max. 16 bytes).&lt;br /&gt;
&lt;br /&gt;
==$7: Load user name==&lt;br /&gt;
&lt;br /&gt;
Loads the user name of the memory card.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_START must be a pointer to which the user name&#039;s string will be copied.&lt;br /&gt;
&lt;br /&gt;
[[Category:BIOS calls]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=CARD&amp;diff=8363</id>
		<title>CARD</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=CARD&amp;diff=8363"/>
		<updated>2024-08-21T15:42:15Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: Undo revision 8362 by Iq 132 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=CARD ($C00468)=&lt;br /&gt;
&lt;br /&gt;
The CARD [[system ROM]] call is used to perform opeartions on the [[memory card]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; register contents aren&#039;t preserved !&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
&lt;br /&gt;
The following variables are used when calling CARD:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Address&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;DEF name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Set by&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC4&lt;br /&gt;
|BIOS_CARD_COMMAND&lt;br /&gt;
|byte&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Command code to execute&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC6&lt;br /&gt;
|BIOS_CARD_ANSWER&lt;br /&gt;
|byte&lt;br /&gt;
|System ROM&lt;br /&gt;
|Answer code (see below)&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC8&lt;br /&gt;
|BIOS_CARD_START&lt;br /&gt;
|longword&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Pointer to data&lt;br /&gt;
|-&lt;br /&gt;
|$10FDCC&lt;br /&gt;
|BIOS_CARD_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Size of data&lt;br /&gt;
|-&lt;br /&gt;
|$10FDCE&lt;br /&gt;
|BIOS_CARD_FCB&lt;br /&gt;
|word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Game [[NGH number]]&lt;br /&gt;
|-&lt;br /&gt;
|$10FDD0&lt;br /&gt;
|BIOS_CARD_SUB&lt;br /&gt;
|byte or word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Game save sub-number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following temporary variables are used when calling CARD :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Address&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;DEF name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$10FD04&lt;br /&gt;
|BIOS_CARD_DIRECTORY_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of directory&lt;br /&gt;
|-&lt;br /&gt;
|$10FD08&lt;br /&gt;
|BIOS_CARD_BLOCK_NUMBER&lt;br /&gt;
|word&lt;br /&gt;
|Number of blocks&lt;br /&gt;
|-&lt;br /&gt;
|$10FD0A&lt;br /&gt;
|BIOS_CARD_FAT_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of FAT&lt;br /&gt;
|-&lt;br /&gt;
|$10FD0E&lt;br /&gt;
|BIOS_CARD_FAT_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|Size of FAT&lt;br /&gt;
|-&lt;br /&gt;
|$10FD10&lt;br /&gt;
|BIOS_CARD_DATA_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of data&lt;br /&gt;
|-&lt;br /&gt;
|$10FD14&lt;br /&gt;
|BIOS_CARD_TYPE&lt;br /&gt;
|word&lt;br /&gt;
|&lt;br /&gt;
* $0 : 8 bits card&lt;br /&gt;
* $01 : 16 bits card&lt;br /&gt;
* $80 : 16 bits wide weird card (todo)&lt;br /&gt;
|-&lt;br /&gt;
|$10FD16&lt;br /&gt;
|BIOS_CARD_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|Size of the card&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BIOS_CARD_ANSWER==&lt;br /&gt;
&lt;br /&gt;
This variable contains the result of the operation. Bit 7 indicates an error.&lt;br /&gt;
&lt;br /&gt;
* $00: Normal completion&lt;br /&gt;
* $80: No card inserted&lt;br /&gt;
* $81: Card isn&#039;t formatted&lt;br /&gt;
* $82: Requested data doesn&#039;t exist&lt;br /&gt;
* $83: FAT error&lt;br /&gt;
* $84: Card is full&lt;br /&gt;
* $85: Write disabled or ROM card&lt;br /&gt;
&lt;br /&gt;
=Commands=&lt;br /&gt;
&lt;br /&gt;
==$0: Format memory card==&lt;br /&gt;
&lt;br /&gt;
Formats the memory card.&lt;br /&gt;
&lt;br /&gt;
==$1: Data search==&lt;br /&gt;
&lt;br /&gt;
Return the number of save files for the specified game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_SUB contains a 16 bit mask for all 16 available blocks for the game. If a bit is set, then the corresponding save block exists.&lt;br /&gt;
&lt;br /&gt;
==$2: Load data==&lt;br /&gt;
&lt;br /&gt;
Loads the specified save file in RAM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
* BIOS_CARD_START must be a pointer to which the save data will be loaded.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the size of the save (usually 64 bytes).&lt;br /&gt;
&lt;br /&gt;
==$3: Save data==&lt;br /&gt;
&lt;br /&gt;
Save from RAM to the specified save file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
* BIOS_CARD_START must be a pointer from which the save data will be copied.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the size of the save (usually 64 bytes).&lt;br /&gt;
&lt;br /&gt;
==$4: Delete data==&lt;br /&gt;
&lt;br /&gt;
Delete the specified file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
&lt;br /&gt;
==$5: Read data title==&lt;br /&gt;
&lt;br /&gt;
Read the data title of a save file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_START must be a pointer to which the title string will be copied.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the game save number ?&lt;br /&gt;
&lt;br /&gt;
==$6: Save user name==&lt;br /&gt;
&lt;br /&gt;
Set the user name of the memory card.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_START must be a pointer to the user name&#039;s string (max. 16 bytes).&lt;br /&gt;
&lt;br /&gt;
==$7: Load user name==&lt;br /&gt;
&lt;br /&gt;
Loads the user name of the memory card.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_START must be a pointer to which the user name&#039;s string will be copied.&lt;br /&gt;
&lt;br /&gt;
[[Category:BIOS calls]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=CARD&amp;diff=8362</id>
		<title>CARD</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=CARD&amp;diff=8362"/>
		<updated>2024-08-21T15:41:51Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=CARD ($C00468)=&lt;br /&gt;
&lt;br /&gt;
The CARD [[system ROM]] call is used to perform operation on the [[memory card]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; register contents aren&#039;t preserved !&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
&lt;br /&gt;
The following variables are used when calling CARD:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Address&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;DEF name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Set by&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC4&lt;br /&gt;
|BIOS_CARD_COMMAND&lt;br /&gt;
|byte&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Command code to execute&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC6&lt;br /&gt;
|BIOS_CARD_ANSWER&lt;br /&gt;
|byte&lt;br /&gt;
|System ROM&lt;br /&gt;
|Answer code (see below)&lt;br /&gt;
|-&lt;br /&gt;
|$10FDC8&lt;br /&gt;
|BIOS_CARD_START&lt;br /&gt;
|longword&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Pointer to data&lt;br /&gt;
|-&lt;br /&gt;
|$10FDCC&lt;br /&gt;
|BIOS_CARD_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Size of data&lt;br /&gt;
|-&lt;br /&gt;
|$10FDCE&lt;br /&gt;
|BIOS_CARD_FCB&lt;br /&gt;
|word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Game [[NGH number]]&lt;br /&gt;
|-&lt;br /&gt;
|$10FDD0&lt;br /&gt;
|BIOS_CARD_SUB&lt;br /&gt;
|byte or word&lt;br /&gt;
|System ROM or game&lt;br /&gt;
|Game save sub-number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following temporary variables are used when calling CARD :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Address&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;DEF name&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Size&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$10FD04&lt;br /&gt;
|BIOS_CARD_DIRECTORY_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of directory&lt;br /&gt;
|-&lt;br /&gt;
|$10FD08&lt;br /&gt;
|BIOS_CARD_BLOCK_NUMBER&lt;br /&gt;
|word&lt;br /&gt;
|Number of blocks&lt;br /&gt;
|-&lt;br /&gt;
|$10FD0A&lt;br /&gt;
|BIOS_CARD_FAT_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of FAT&lt;br /&gt;
|-&lt;br /&gt;
|$10FD0E&lt;br /&gt;
|BIOS_CARD_FAT_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|Size of FAT&lt;br /&gt;
|-&lt;br /&gt;
|$10FD10&lt;br /&gt;
|BIOS_CARD_DATA_START&lt;br /&gt;
|long word&lt;br /&gt;
|Start of data&lt;br /&gt;
|-&lt;br /&gt;
|$10FD14&lt;br /&gt;
|BIOS_CARD_TYPE&lt;br /&gt;
|word&lt;br /&gt;
|&lt;br /&gt;
* $0 : 8 bits card&lt;br /&gt;
* $01 : 16 bits card&lt;br /&gt;
* $80 : 16 bits wide weird card (todo)&lt;br /&gt;
|-&lt;br /&gt;
|$10FD16&lt;br /&gt;
|BIOS_CARD_SIZE&lt;br /&gt;
|word&lt;br /&gt;
|Size of the card&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BIOS_CARD_ANSWER==&lt;br /&gt;
&lt;br /&gt;
This variable contains the result of the operation. Bit 7 indicates an error.&lt;br /&gt;
&lt;br /&gt;
* $00: Normal completion&lt;br /&gt;
* $80: No card inserted&lt;br /&gt;
* $81: Card isn&#039;t formatted&lt;br /&gt;
* $82: Requested data doesn&#039;t exist&lt;br /&gt;
* $83: FAT error&lt;br /&gt;
* $84: Card is full&lt;br /&gt;
* $85: Write disabled or ROM card&lt;br /&gt;
&lt;br /&gt;
=Commands=&lt;br /&gt;
&lt;br /&gt;
==$0: Format memory card==&lt;br /&gt;
&lt;br /&gt;
Formats the memory card.&lt;br /&gt;
&lt;br /&gt;
==$1: Data search==&lt;br /&gt;
&lt;br /&gt;
Return the number of save files for the specified game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_SUB contains a 16 bit mask for all 16 available blocks for the game. If a bit is set, then the corresponding save block exists.&lt;br /&gt;
&lt;br /&gt;
==$2: Load data==&lt;br /&gt;
&lt;br /&gt;
Loads the specified save file in RAM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
* BIOS_CARD_START must be a pointer to which the save data will be loaded.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the size of the save (usually 64 bytes).&lt;br /&gt;
&lt;br /&gt;
==$3: Save data==&lt;br /&gt;
&lt;br /&gt;
Save from RAM to the specified save file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
* BIOS_CARD_START must be a pointer from which the save data will be copied.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the size of the save (usually 64 bytes).&lt;br /&gt;
&lt;br /&gt;
==$4: Delete data==&lt;br /&gt;
&lt;br /&gt;
Delete the specified file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_FCB must contain the NGH number of the desired game.&lt;br /&gt;
* BIOS_CARD_SUB must contain the game save number (16 max. per game).&lt;br /&gt;
&lt;br /&gt;
==$5: Read data title==&lt;br /&gt;
&lt;br /&gt;
Read the data title of a save file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* BIOS_CARD_START must be a pointer to which the title string will be copied.&lt;br /&gt;
* BIOS_CARD_SIZE must contain the game save number ?&lt;br /&gt;
&lt;br /&gt;
==$6: Save user name==&lt;br /&gt;
&lt;br /&gt;
Set the user name of the memory card.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_START must be a pointer to the user name&#039;s string (max. 16 bytes).&lt;br /&gt;
&lt;br /&gt;
==$7: Load user name==&lt;br /&gt;
&lt;br /&gt;
Loads the user name of the memory card.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
BIOS_CARD_START must be a pointer to which the user name&#039;s string will be copied.&lt;br /&gt;
&lt;br /&gt;
[[Category:BIOS calls]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=BIOSF_UPLOAD&amp;diff=8354</id>
		<title>BIOSF UPLOAD</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=BIOSF_UPLOAD&amp;diff=8354"/>
		<updated>2024-05-15T20:15:02Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BIOSF_UPLOAD ($C00546) call copies data to the NeoGeo CD [[DRAM]].&lt;br /&gt;
&lt;br /&gt;
The parameters are:&lt;br /&gt;
&lt;br /&gt;
*{{BR|BIOS_UPSRC}} (longword): Data source address&lt;br /&gt;
*{{BR|BIOS_UPDEST}} (longword): Data destination address&lt;br /&gt;
*{{BR|BIOS_UPSIZE}} (longword): Data size&lt;br /&gt;
*{{BR|BIOS_UPZONE}} (byte): Zone/method, see below&lt;br /&gt;
*{{BR|BIOS_UPBANK}} (byte): DRAM bank&lt;br /&gt;
&lt;br /&gt;
When the call returns, BIOS_UPDEST points to the end of the copied data, allowing multiple consecutive uploads without setting the destination address again.&lt;br /&gt;
&lt;br /&gt;
=Banks=&lt;br /&gt;
&lt;br /&gt;
Some DRAM zones have banks: SPR has 4 banks (each 1MiB), PCM has 2 banks (each 512KiB).&lt;br /&gt;
&lt;br /&gt;
=Zones/methods=&lt;br /&gt;
&lt;br /&gt;
==$00: Copy PRG words (DMA)==&lt;br /&gt;
Loads word copy DMA microcode.&lt;br /&gt;
&lt;br /&gt;
==$01: Copy Fix graphics bytes (DMA)==&lt;br /&gt;
Loads byte copy DMA microcode. Dest = Dest + Size * 2.&lt;br /&gt;
&lt;br /&gt;
==$02: Copy Sprite graphics words (DMA)==&lt;br /&gt;
Loads word copy DMA microcode. Copies over 1MiB are possible, the bank is incremented automatically.&lt;br /&gt;
&lt;br /&gt;
==$03: Copy Z80 program bytes (DMA)==&lt;br /&gt;
Loads byte copy DMA microcode.&lt;br /&gt;
&lt;br /&gt;
The destination address must be multiplied by 2 (8bit bus) ? Size doesn&#039;t have to be multiplied, but has to be an even number ?&lt;br /&gt;
&lt;br /&gt;
==$04: Copy PCM bytes (CPU)==&lt;br /&gt;
Loads byte copy DMA microcode.&lt;br /&gt;
&lt;br /&gt;
The destination address must be multiplied by 2 (8bit bus). Size doesn&#039;t have to be multiplied, but has to be an even number. Copies over 1MiB are possible, the bank is incremented automatically.&lt;br /&gt;
&lt;br /&gt;
==$05: Install [[PAT file]]==&lt;br /&gt;
Notes:&lt;br /&gt;
*10F736.l=((Bank*$10000)+Dest)/256&lt;br /&gt;
*10F736+Address/2&lt;br /&gt;
&lt;br /&gt;
==$06: Copy palette words (DMA)==&lt;br /&gt;
Loads word copy DMA microcode.&lt;br /&gt;
&lt;br /&gt;
==$07: Copy compressed sprite graphics (CPU)==&lt;br /&gt;
The first longword&#039;s value indicates the size of the &#039;&#039;&#039;compressed&#039;&#039;&#039; data, BIOS_UPSIZE isn&#039;t used.&lt;br /&gt;
When a longword zero is copied, the following longword indicates how many zero longwords to insert.&lt;br /&gt;
&lt;br /&gt;
This method allows compression of large transparent zones. Is it ever used by games ?&lt;br /&gt;
&lt;br /&gt;
==$08: Copy PRG words (DMA)==&lt;br /&gt;
Same as method $00.&lt;br /&gt;
&lt;br /&gt;
==$10: Copy PRG longwords (CPU)==&lt;br /&gt;
Size must be a multiple of 4.&lt;br /&gt;
&lt;br /&gt;
==$11: Copy Fix graphics words (CPU)==&lt;br /&gt;
The destination address must be multiplied by 2 (8bit bus). Size doesn&#039;t have to be multiplied, but has to be an even number.&lt;br /&gt;
&lt;br /&gt;
==$12: Copy Sprite graphics longwords (CPU)==&lt;br /&gt;
Size must be a multiple of 4.&lt;br /&gt;
&lt;br /&gt;
==$13: Copy Z80 program bytes (CPU)==&lt;br /&gt;
The destination address must be multiplied by 2 (8bit bus). Size doesn&#039;t have to be multiplied, but has to be an even number.&lt;br /&gt;
&lt;br /&gt;
==$14: Copy PCM bytes (CPU)==&lt;br /&gt;
The destination address must be multiplied by 2 (8bit bus). Size doesn&#039;t have to be multiplied, but has to be an even number. Copies over 1MiB are possible, the bank is incremented automatically.&lt;br /&gt;
&lt;br /&gt;
Difference with $04 ?&lt;br /&gt;
&lt;br /&gt;
==$15: Install PAT file==&lt;br /&gt;
Same as method $05.&lt;br /&gt;
&lt;br /&gt;
==$16: Copy palette longwords (CPU)==&lt;br /&gt;
Size must be a multiple of 4.&lt;br /&gt;
&lt;br /&gt;
==$17: Copy compressed sprite graphics (CPU)==&lt;br /&gt;
Same as method $07.&lt;br /&gt;
&lt;br /&gt;
==$18: Copy PRG longwords (CPU)==&lt;br /&gt;
Same as method $10.&lt;br /&gt;
&lt;br /&gt;
[[Category:BIOS calls]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Emulators&amp;diff=8294</id>
		<title>Emulators</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Emulators&amp;diff=8294"/>
		<updated>2023-08-15T18:37:39Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: Alphabetize&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;center&amp;quot; class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&#039;&#039;&#039;Platform&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;MVS/AES&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;CD/CDZ&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Raster line rendering&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Debugger&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Shot factory]]&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Universe BIOS|UniBIOS]] support&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Debug DIPs]]&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Source available&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/finalburnneo/FBNeo/releases/tag/latest &#039;&#039;&#039;FinalBurn Neo&#039;&#039;&#039;]&lt;br /&gt;
|Windows/Various&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes (Enabled per game)&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://gngeo.berlios.de/?page=download &#039;&#039;&#039;GnGeo&#039;&#039;&#039;]&lt;br /&gt;
|GP2X Linux&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes (needs to be activated)&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/dciabrin/gngeo &#039;&#039;&#039;GnGeo&#039;&#039;&#039; (ngdevkit fork)]&lt;br /&gt;
| Linux&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes? (needs to be activated?)&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes (gdb)&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://cps2shock.emu-france.info/download.html &#039;&#039;&#039;Kawaks&#039;&#039;&#039;]&lt;br /&gt;
|Windows&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|-&lt;br /&gt;
|[http://mamedev.org/release.html &#039;&#039;&#039;MAME&#039;&#039;&#039;]&lt;br /&gt;
|Linux, Windows&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://pacifi3d.retrogames.com/neocdsdl/ &#039;&#039;&#039;NeoCD&#039;&#039;&#039;]&lt;br /&gt;
|BeOS, Dreamcast, Linux, PS2, Windows&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|/&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://nebula.emulatronia.com/descargas.php &#039;&#039;&#039;Nebula&#039;&#039;&#039;]&lt;br /&gt;
|Windows&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No ?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Conditional&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|/&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes (uneffective ?)&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|-&lt;br /&gt;
|[http://caesar.logiqx.com/php/emulator.php?id=neoragex &#039;&#039;&#039;NeoRage X&#039;&#039;&#039;]&lt;br /&gt;
|Windows&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No ?&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No?&lt;br /&gt;
|-&lt;br /&gt;
|[http://raine.1emulation.com/download/latest.html &#039;&#039;&#039;NeoRaine&#039;&#039;&#039;]&lt;br /&gt;
|Mac, Windows&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes, command line&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|/&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.xe-emulator.com/index.php?m=download &#039;&#039;&#039;XE&#039;&#039;&#039;]&lt;br /&gt;
|Linux, Windows&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|Yes ?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No ?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|Yes ?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Emulators&amp;diff=8293</id>
		<title>Emulators</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Emulators&amp;diff=8293"/>
		<updated>2023-08-15T18:35:45Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: Add FinalBurn Neo.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;center&amp;quot; class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&#039;&#039;&#039;Platform&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;MVS/AES&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;CD/CDZ&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Raster line rendering&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Debugger&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Shot factory]]&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Universe BIOS|UniBIOS]] support&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Debug DIPs]]&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Source available&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/finalburnneo/FBNeo/releases/tag/latest &#039;&#039;&#039;FinalBurn Neo&#039;&#039;&#039;]&lt;br /&gt;
|Windows/Various&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes (When required)&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://cps2shock.emu-france.info/download.html &#039;&#039;&#039;Kawaks&#039;&#039;&#039;]&lt;br /&gt;
|Windows&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|-&lt;br /&gt;
|[http://caesar.logiqx.com/php/emulator.php?id=neoragex &#039;&#039;&#039;NeoRage X&#039;&#039;&#039;]&lt;br /&gt;
|Windows&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No ?&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No?&lt;br /&gt;
|-&lt;br /&gt;
|[http://gngeo.berlios.de/?page=download &#039;&#039;&#039;GnGeo&#039;&#039;&#039;]&lt;br /&gt;
|GP2X Linux&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes (needs to be activated)&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/dciabrin/gngeo &#039;&#039;&#039;GnGeo&#039;&#039;&#039; (ngdevkit fork)]&lt;br /&gt;
| Linux&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes? (needs to be activated?)&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes (gdb)&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://mamedev.org/release.html &#039;&#039;&#039;MAME&#039;&#039;&#039;]&lt;br /&gt;
|Linux, Windows&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://pacifi3d.retrogames.com/neocdsdl/ &#039;&#039;&#039;NeoCD&#039;&#039;&#039;]&lt;br /&gt;
|BeOS, Dreamcast, Linux, PS2, Windows&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|/&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://nebula.emulatronia.com/descargas.php &#039;&#039;&#039;Nebula&#039;&#039;&#039;]&lt;br /&gt;
|Windows&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No ?&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Conditional&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|/&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes (uneffective ?)&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|-&lt;br /&gt;
|[http://raine.1emulation.com/download/latest.html &#039;&#039;&#039;NeoRaine&#039;&#039;&#039;]&lt;br /&gt;
|Mac, Windows&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes, command line&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|/&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.xe-emulator.com/index.php?m=download &#039;&#039;&#039;XE&#039;&#039;&#039;]&lt;br /&gt;
|Linux, Windows&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#8F8&amp;quot;|Yes&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|Yes ?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|No ?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|Yes ?&lt;br /&gt;
|bgcolor=&amp;quot;#DDD&amp;quot;|?&lt;br /&gt;
|bgcolor=&amp;quot;#F88&amp;quot;|No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=PROGBK1&amp;diff=8292</id>
		<title>PROGBK1</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=PROGBK1&amp;diff=8292"/>
		<updated>2023-08-15T18:28:58Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: V ROM 32MiB type&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Progbk1_mvs.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
The only non-protected board that can bankswitch and use all [[V ROM]] space. Really common and very useful for homebrew stuff or converts.&lt;br /&gt;
&lt;br /&gt;
Often used as the PROG board in [[Neo Print]] cartridges.&lt;br /&gt;
&lt;br /&gt;
=P ROMs configuration=&lt;br /&gt;
&lt;br /&gt;
[[File:Progbk1p.png|650px]]&lt;br /&gt;
&lt;br /&gt;
==EP ROMs /OE==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!J1&lt;br /&gt;
!J2&lt;br /&gt;
|-&lt;br /&gt;
|/ROMOE&lt;br /&gt;
|/PORTOE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==P2 ROM /CE==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!J3&lt;br /&gt;
!J4&lt;br /&gt;
!J5&lt;br /&gt;
|-&lt;br /&gt;
|A18&lt;br /&gt;
|/A18&lt;br /&gt;
|GND (default)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==P2 ROM /OE==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!J6&lt;br /&gt;
!J7&lt;br /&gt;
!JB1&lt;br /&gt;
|-&lt;br /&gt;
|/ROMOE&lt;br /&gt;
|/PORTOE (default)&lt;br /&gt;
|/PORTOE, banks 0 and 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==P1 ROM /OE==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!J8&lt;br /&gt;
!J9&lt;br /&gt;
!J10&lt;br /&gt;
!JB2&lt;br /&gt;
|-&lt;br /&gt;
|/PORTOE&lt;br /&gt;
|/PORTOE AND /ROMOE&lt;br /&gt;
|/ROMOE (default)&lt;br /&gt;
|/PORTOE, banks 2 and 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==P1 ROM /CE==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!J11&lt;br /&gt;
!J12&lt;br /&gt;
!J13&lt;br /&gt;
|-&lt;br /&gt;
|A18&lt;br /&gt;
|/A18&lt;br /&gt;
|GND (default)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==P1 ROM size==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!JB3&lt;br /&gt;
!JB4&lt;br /&gt;
!Nothing&lt;br /&gt;
|-&lt;br /&gt;
|A19/NC is /PORTADRS (P1 is 16Mbit)&lt;br /&gt;
|A19/NC is BANK0 (because reasons?)&lt;br /&gt;
|P1 is 8Mbit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==P2 ROM size==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!JB5&lt;br /&gt;
!JB6&lt;br /&gt;
|-&lt;br /&gt;
|A20//BYTE is VCC (P2 is 16Mbit or less)&lt;br /&gt;
|A20//BYTE is BANK1 (P2 is 32Mbit)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The [[P ROM|P1 ROM]] can be 4Mbit, 8Mbit or 16Mbit (27C400/27C800/27C160).&lt;br /&gt;
* ROMs can be halved and mapped to 0x000000~0x0FFFFF or 0x200000~0x2FFFFF.&lt;br /&gt;
* If P1 is 4Mbit or 8Mbit, then P2 can contain a bankswitched ROM (same type as P1 plus 27C322). P1 appears in 0x000000~0x0FFFFF. P2 bank appears in 0x200000~0x2FFFFF.&lt;br /&gt;
&lt;br /&gt;
[[Bankswitching]] is done with the LS74. It&#039;s not needed if the game isn&#039;t banked. Any write to an odd address in the [[68k memory map|0x200000~0x2FFFFF]] range will set the bank.&lt;br /&gt;
&lt;br /&gt;
=V ROMs configuration=&lt;br /&gt;
&lt;br /&gt;
[[File:Progbk1v.png]]&lt;br /&gt;
&lt;br /&gt;
There is a maximum of 4 [[V ROM]]s which can be 8Mbit, 16Mbit or 32Mbit (27C800/27C160/27C322) for a maximum total size of 4 * 4MiB = 16MiB.&lt;br /&gt;
&lt;br /&gt;
A 4Mbit ROM can also be used, but only if there&#039;s one and only if it&#039;s in the last used slot.&lt;br /&gt;
&lt;br /&gt;
The size of the largest V ROM is selected with a pair of jumpers on 6 spots (3 possible choices).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Largest V ROM&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|8Mbit (1MiB)&lt;br /&gt;
|JV1+JV2&lt;br /&gt;
|-&lt;br /&gt;
|16Mbit (2MiB)&lt;br /&gt;
|JV3+JV4&lt;br /&gt;
|-&lt;br /&gt;
|32Mbit (4MiB)&lt;br /&gt;
|JV5+JV6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This pair of V ROM jumpers effectively choose a set of 2 of the [[PCM]] chip address outputs to input to the LS139, which will enable one out of the 4 V ROMs at a time.&lt;br /&gt;
&lt;br /&gt;
The JV7 to JV14 jumpers need to be set according to the ROM types. If it&#039;s less than 32Mbit, the JV7/JV8/JV9/JV10 jumper needs to be set (ground). If it&#039;s 32Mbit, the JV11/JV12/JV13/JV14 needs to be set (A20). This is because 32Mbit chips have their /BYTE pin replaced by A20.&lt;br /&gt;
&lt;br /&gt;
=Other=&lt;br /&gt;
&lt;br /&gt;
The LS08 is used to AND the /PORTOEU and /PORTOEL signals to get /PORTOE.&lt;br /&gt;
&lt;br /&gt;
* 4x 1/2/4MiB V ROMs&lt;br /&gt;
* 1/2MiB P1 ROM&lt;br /&gt;
* 1/2/4MiB P2 ROM&lt;br /&gt;
* 2x 512KiB EP1/EP2 ROM&lt;br /&gt;
* {{Chipname|PCM}} chip&lt;br /&gt;
* LS139, LS08, LS74A&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartridge boards]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=CHA256&amp;diff=8291</id>
		<title>CHA256</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=CHA256&amp;diff=8291"/>
		<updated>2023-08-15T17:15:25Z</updated>

		<summary type="html">&lt;p&gt;Iq 132: CHA doesn&amp;#039;t have J14/J15/J16/J17 - it has R1/R2/R3/R4 - Verified w/CHA256 games via MVS Scans.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Cha256_mvs.jpg|thumb|256px]]&lt;br /&gt;
&lt;br /&gt;
===C ROMs===&lt;br /&gt;
&lt;br /&gt;
Up to 8 * 32Mbit ROMs (27C322) can be used for a maximum of 256Mbit. 27C800/27C160 can also be used depending on jumper configuration.&lt;br /&gt;
&lt;br /&gt;
The size of largest ROM is selected using a pair of jumpers. The rest should be left unconnected.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Largest C ROM&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|1MiB&lt;br /&gt;
|J5+J6&lt;br /&gt;
|-&lt;br /&gt;
|2MiB&lt;br /&gt;
|J7+J8&lt;br /&gt;
|-&lt;br /&gt;
|4MiB&lt;br /&gt;
|J9+J10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These jumpers seem to apply only to those two ROMs, if the ROMs are not present, simply leave both jumpers unconnected.  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!C1/2 ROM type&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;4MiB&lt;br /&gt;
|R1&lt;br /&gt;
|-&lt;br /&gt;
|4MiB&lt;br /&gt;
|J11&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!C3/4 ROM type&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;4MiB&lt;br /&gt;
|R2&lt;br /&gt;
|-&lt;br /&gt;
|4MiB&lt;br /&gt;
|J12&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!C5/6 ROM type&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;4MiB&lt;br /&gt;
|R3&lt;br /&gt;
|-&lt;br /&gt;
|4MiB&lt;br /&gt;
|J13&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!C7/8 ROM type&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;4MiB&lt;br /&gt;
|R4&lt;br /&gt;
|-&lt;br /&gt;
|4MiB&lt;br /&gt;
|J14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A [[NEO-273]] and a LS74 are used to address C ROM. The LS74 provides the 2 most significant bits. The LS139 enables one of four pairs of C ROMs using 2 address inputs depending on which 2 jumpers are connected.&lt;br /&gt;
&lt;br /&gt;
*Max 256Mbit C ROM (8x 32Mbit)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!M1 ROM size&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|64KiB&lt;br /&gt;
|J1+J4&lt;br /&gt;
|-&lt;br /&gt;
|128KiB&lt;br /&gt;
|J2+J3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[[NEO-273]]&lt;br /&gt;
*[[NEO-ZMC]]&lt;br /&gt;
*LS139,LS74&lt;br /&gt;
&lt;br /&gt;
==AES version==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!C ROM type&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;4MiB&lt;br /&gt;
|J15+J16+J17+J18&lt;br /&gt;
|-&lt;br /&gt;
|4MiB&lt;br /&gt;
|J11+J12+J13+J14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!EVEN delay&lt;br /&gt;
!Jumper set&lt;br /&gt;
|-&lt;br /&gt;
|1 gate&lt;br /&gt;
|J19&lt;br /&gt;
|-&lt;br /&gt;
|2 gates&lt;br /&gt;
|J20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartridge boards]]&lt;/div&gt;</summary>
		<author><name>Iq 132</name></author>
	</entry>
</feed>