<?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=Furrtek</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=Furrtek"/>
	<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php/Special:Contributions/Furrtek"/>
	<updated>2026-05-21T21:11:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Talk:NEO-I0&amp;diff=9231</id>
		<title>Talk:NEO-I0</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Talk:NEO-I0&amp;diff=9231"/>
		<updated>2026-05-13T06:45:20Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Ragefan|Ragefan]] on which board did you find pin 32 tied to GND ? I have RW on my MV1FS, as shown on schematics (https://wiki.neogeodev.org/index.php/File:Mv1fs-page2.jpg). --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 00:08, 13 May 2026 (CEST)&lt;br /&gt;
&lt;br /&gt;
Dear Furrtek, this is a MV1AX. That&#039;s very interesting 🤔&lt;br /&gt;
&lt;br /&gt;
Maybe because NEO-MGA handles the coin counter outputs and so RW isn&#039;t needed on NEO-I0 ? --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:45, 13 May 2026 (CEST)&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Memory_speed&amp;diff=9229</id>
		<title>Memory speed</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Memory_speed&amp;diff=9229"/>
		<updated>2026-05-12T23:22:59Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Requirements summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Aes_cxk5814.jpg|thumb|[[VRAM]] chip, note the &amp;quot;-35&amp;quot; marking. 35ns is the highest speed requirement in the NeoGeo.]]&lt;br /&gt;
&lt;br /&gt;
Memory speed (or speed grade) is a value representing the maximum time it takes for a memory chip to output valid data after its address is changed.&lt;br /&gt;
&lt;br /&gt;
It is essential for memory chips to be fast enough to avoid crashes or glitches. When replacing RAMs, replacing the [[system ROM]] or making cartmods, care must be taken to use chips with the appropriate speed grades.&lt;br /&gt;
&lt;br /&gt;
Speed is usually indicated on the chip. It is actually a time value (speed = 1/t) specified in nanoseconds or tens of nanoseconds.&lt;br /&gt;
&lt;br /&gt;
During the specified time, the data output isn&#039;t guaranteed to be valid. So if the chip is too slow, the system might catch wrong bits resulting in unstable operation.&lt;br /&gt;
&lt;br /&gt;
Regarding the NeoGeo, faster than required (lower value) isn&#039;t a problem, slower than required (higher value) is bad.&lt;br /&gt;
&lt;br /&gt;
A slower chip can work in some cases if you&#039;re lucky, but you should never expect stable operation in all conditions. For example, some 120ns chips might work in place of a 100ns one, but a slight variation in voltage or temperature could cause crashes or resets. Taking the risk isn&#039;t worth it.&lt;br /&gt;
&lt;br /&gt;
=Requirements summary=&lt;br /&gt;
&lt;br /&gt;
See the related section in the [[VRAM]], [[Palette RAM]], [[P ROM]], [[V ROM]], [[S ROM]], [[C ROM]], and [[M1 ROM]] pages.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Memory kind&lt;br /&gt;
!Maximum value&lt;br /&gt;
!Mclks&lt;br /&gt;
!Proof&lt;br /&gt;
|-&lt;br /&gt;
|Z80 RAM&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|&amp;lt;500ns (2 MHz)&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|12? (500ns)&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Z80 read cycle&lt;br /&gt;
|-&lt;br /&gt;
|M1 ROM&lt;br /&gt;
|-&lt;br /&gt;
|Lower VRAM&lt;br /&gt;
|120ns (8.33 MHz)&lt;br /&gt;
|3 (125ns)&lt;br /&gt;
|Picture&lt;br /&gt;
|-&lt;br /&gt;
|Upper VRAM&lt;br /&gt;
|35ns (28.57 MHz) &lt;br /&gt;
|1 (41.7ns)&lt;br /&gt;
|Picture&lt;br /&gt;
|-&lt;br /&gt;
|Palette RAM&lt;br /&gt;
|120ns (8.33 MHz)&lt;br /&gt;
|3 (125ns)&lt;br /&gt;
|Picture&lt;br /&gt;
|-&lt;br /&gt;
|L0 ROM&lt;br /&gt;
|120ns ? (8.33 MHz)&lt;br /&gt;
|?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|P ROM&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|250ns&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|6 (3 68k clocks) ?&lt;br /&gt;
|-&lt;br /&gt;
|System ROM&lt;br /&gt;
|-&lt;br /&gt;
|68k RAM&lt;br /&gt;
|-&lt;br /&gt;
|Backup RAM&lt;br /&gt;
|-&lt;br /&gt;
|V ROM&lt;br /&gt;
|200ns (5 MHz)&lt;br /&gt;
|6 (250ns)&lt;br /&gt;
|YM2610 read cycle&lt;br /&gt;
|-&lt;br /&gt;
|S ROM&lt;br /&gt;
|200ns ? (5 MHz)&lt;br /&gt;
|5? (208ns)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|C ROM&lt;br /&gt;
|200ns ? (5 MHz)&lt;br /&gt;
|5? (208ns)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Memory card&lt;br /&gt;
|417ns ?&lt;br /&gt;
|10 (3 68k clocks + 2 waits) ?&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Standard speed grades=&lt;br /&gt;
&lt;br /&gt;
* -250 (250ns)&lt;br /&gt;
* -200 &#039;&#039;&#039;or -20&#039;&#039;&#039; (200ns)&lt;br /&gt;
* -150 &#039;&#039;&#039;or -15&#039;&#039;&#039; (150ns)&lt;br /&gt;
* -120 &#039;&#039;&#039;or -12&#039;&#039;&#039; (120ns)&lt;br /&gt;
* -90 (90ns)&lt;br /&gt;
* -70 (70ns)&lt;br /&gt;
* -55 (55ns)&lt;br /&gt;
* -35 (35ns).&lt;br /&gt;
&lt;br /&gt;
Note the possible confusion. If the value is less than 30 you probably have to add a 0, even if SRAM is now available in 25ns (not 250ns) speed grades.&lt;br /&gt;
&lt;br /&gt;
Check the datasheets.&lt;br /&gt;
&lt;br /&gt;
=DRAM=&lt;br /&gt;
&lt;br /&gt;
DRAM (CD systems) is way more complex than SRAM, timings and sequences are primordial.&lt;br /&gt;
&lt;br /&gt;
[[Category:Chips]]&lt;br /&gt;
[[Category:Base system]]&lt;br /&gt;
[[Category:Repairs]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Talk:NEO-I0&amp;diff=9228</id>
		<title>Talk:NEO-I0</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Talk:NEO-I0&amp;diff=9228"/>
		<updated>2026-05-12T22:08:14Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Created page with &amp;quot;User:Ragefan| on which board did you find pin 32 tied to GND ? I have RW on my MV1FS, as shown on schematics (https://wiki.neogeodev.org/index.php/File:Mv1fs-page2.jpg). --~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Ragefan|Ragefan]] on which board did you find pin 32 tied to GND ? I have RW on my MV1FS, as shown on schematics (https://wiki.neogeodev.org/index.php/File:Mv1fs-page2.jpg). --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 00:08, 13 May 2026 (CEST)&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9226</id>
		<title>Software DIPs</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9226"/>
		<updated>2026-05-10T19:13:24Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Special settings list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Softdips.png|thumb|right|A Soft DIPs setup screen.]]&lt;br /&gt;
&lt;br /&gt;
Software DIPs are a list of a maximum of 14 game-specific settings. They can be modified from the MVS [[System ROM]] menu, or with system ROM hacks for other systems.&lt;br /&gt;
&lt;br /&gt;
The settings names and their possible values are stored in the game&#039;s [[68k program header]] in a specific format, read by the system ROM to form a menu.&lt;br /&gt;
&lt;br /&gt;
On the [[MVS]], the settings are saved for each game in the [[backup RAM]].&lt;br /&gt;
&lt;br /&gt;
The settings are copied from backup RAM to [[68k user RAM|user RAM]] to &#039;&#039;&#039;BIOS_GAME_DIP&#039;&#039;&#039; ($10FD84) just before the game is started up. If no settings are found, they&#039;re initialized to the default values.&lt;br /&gt;
&lt;br /&gt;
(Does the system ROM check values pulled from the backup RAM against the bounds given by the game ? Can a corrupt backup RAM save make games crash with&lt;br /&gt;
out of bounds settings ?)&lt;br /&gt;
&lt;br /&gt;
Software DIPs settings aren&#039;t available on the AES, the system ROM always loads the game&#039;s default values.&lt;br /&gt;
&lt;br /&gt;
== Config data description ==&lt;br /&gt;
&lt;br /&gt;
Most of the following information by [[User:ElBarto|ElBarto]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;0x00&#039;&#039;&#039;&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| Game name, no termination char required.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x10&#039;&#039;&#039;&lt;br /&gt;
| 6 bytes&lt;br /&gt;
| Special settings list, 4 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x16&#039;&#039;&#039;&lt;br /&gt;
| 10 bytes&lt;br /&gt;
| Simple settings list, up to 10 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x20&#039;&#039;&#039;&lt;br /&gt;
| x*12 bytes&lt;br /&gt;
| String table. Strings are 12 bytes long and padded with 0x20 (space). Max number ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Special settings list===&lt;br /&gt;
&lt;br /&gt;
The special settings list holds 4 entries: the first 2 are for time settings, and the last 2 are for count settings.&lt;br /&gt;
&lt;br /&gt;
A time setting occupies one word, which defines the default value:&lt;br /&gt;
* The upper byte is the minutes (up to 29, in BCD).&lt;br /&gt;
* The lower byte is the seconds (in BCD).&lt;br /&gt;
&lt;br /&gt;
An unused time setting must be set to 0xFFFF.&lt;br /&gt;
&lt;br /&gt;
A count setting occupies one byte, which defines the default value (not in BCD).&lt;br /&gt;
The first count setting can go from 1 to 99.&lt;br /&gt;
The second count setting is a &amp;quot;number of times&amp;quot;, it can go from 0 (displayed as &amp;quot;WITHOUT&amp;quot;) to 100 (displayed as &amp;quot;INFINITE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
An unused count setting must be set to 0xFF.&lt;br /&gt;
&lt;br /&gt;
All special settings use a single string from the strings table, for the setting&#039;s name.&lt;br /&gt;
&lt;br /&gt;
===Simple settings list===&lt;br /&gt;
&lt;br /&gt;
Each options occupies one byte.&lt;br /&gt;
&lt;br /&gt;
The upper 4 bits define the default value (starts from 0) and the lower 4 bits the number of choices.&lt;br /&gt;
&lt;br /&gt;
A few games have a simple setting entry in entry #7 with a number of choices set to zero, to show a &amp;quot;▼NEXT PAGE&amp;quot; string on the bottom of the MVS menu. This is not done automatically by the system ROM.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $FFFF                              ; Special settings list (none used)&lt;br /&gt;
    dc.w    $FFFF&lt;br /&gt;
    dc.b    $FF,$FF&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    ; String table:&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Config_1.png]]&lt;br /&gt;
|[[File:Config_2.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $4220                              ; Special setting 1: 42 minutes 20 seconds&lt;br /&gt;
    dc.w    $2042                              ; Special setting 2: 20 minutes 42 seconds&lt;br /&gt;
    dc.b    $42                                ; Special setting 3: 66&lt;br /&gt;
    dc.b    $64                                ; Special setting 4: 100 (&amp;quot;INFINITE&amp;quot;)&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    dc.b    &amp;quot;TIMER 1     &amp;quot;                     ; Special setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;TIMER 2     &amp;quot;                     ; Special setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER     &amp;quot;                     ; Special setting 3&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER SPE &amp;quot;                     ; Special setting 4&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config_3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9225</id>
		<title>Software DIPs</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9225"/>
		<updated>2026-05-10T16:37:36Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Simple settings list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Softdips.png|thumb|right|A Soft DIPs setup screen.]]&lt;br /&gt;
&lt;br /&gt;
Software DIPs are a list of a maximum of 14 game-specific settings. They can be modified from the MVS [[System ROM]] menu, or with system ROM hacks for other systems.&lt;br /&gt;
&lt;br /&gt;
The settings names and their possible values are stored in the game&#039;s [[68k program header]] in a specific format, read by the system ROM to form a menu.&lt;br /&gt;
&lt;br /&gt;
On the [[MVS]], the settings are saved for each game in the [[backup RAM]].&lt;br /&gt;
&lt;br /&gt;
The settings are copied from backup RAM to [[68k user RAM|user RAM]] to &#039;&#039;&#039;BIOS_GAME_DIP&#039;&#039;&#039; ($10FD84) just before the game is started up. If no settings are found, they&#039;re initialized to the default values.&lt;br /&gt;
&lt;br /&gt;
(Does the system ROM check values pulled from the backup RAM against the bounds given by the game ? Can a corrupt backup RAM save make games crash with&lt;br /&gt;
out of bounds settings ?)&lt;br /&gt;
&lt;br /&gt;
Software DIPs settings aren&#039;t available on the AES, the system ROM always loads the game&#039;s default values.&lt;br /&gt;
&lt;br /&gt;
== Config data description ==&lt;br /&gt;
&lt;br /&gt;
Most of the following information by [[User:ElBarto|ElBarto]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;0x00&#039;&#039;&#039;&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| Game name, no termination char required.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x10&#039;&#039;&#039;&lt;br /&gt;
| 6 bytes&lt;br /&gt;
| Special settings list, 4 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x16&#039;&#039;&#039;&lt;br /&gt;
| 10 bytes&lt;br /&gt;
| Simple settings list, up to 10 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x20&#039;&#039;&#039;&lt;br /&gt;
| x*12 bytes&lt;br /&gt;
| String table. Strings are 12 bytes long and padded with 0x20 (space). Max number ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Special settings list===&lt;br /&gt;
&lt;br /&gt;
The special settings list holds 4 entries: the first 2 are for time settings, and the last 2 are for count settings.&lt;br /&gt;
&lt;br /&gt;
A time setting occupies one word, which defines the default value:&lt;br /&gt;
* The upper byte is the minutes (up to 29 ?, in BCD).&lt;br /&gt;
* The lower byte is the seconds (in BCD).&lt;br /&gt;
&lt;br /&gt;
An unused time setting must be set to 0xFFFF.&lt;br /&gt;
&lt;br /&gt;
A count setting occupies one byte, which defines the default value (not in BCD).&lt;br /&gt;
The first count setting can go from 1 to 99.&lt;br /&gt;
The second count setting is a &amp;quot;number of times&amp;quot;, it can go from 0 (displayed as &amp;quot;WITHOUT&amp;quot;) to 100 (displayed as &amp;quot;INFINITE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
An unused count setting must be set to 0xFF.&lt;br /&gt;
&lt;br /&gt;
All special settings use a single string from the strings table, for the setting&#039;s name.&lt;br /&gt;
&lt;br /&gt;
===Simple settings list===&lt;br /&gt;
&lt;br /&gt;
Each options occupies one byte.&lt;br /&gt;
&lt;br /&gt;
The upper 4 bits define the default value (starts from 0) and the lower 4 bits the number of choices.&lt;br /&gt;
&lt;br /&gt;
A few games have a simple setting entry in entry #7 with a number of choices set to zero, to show a &amp;quot;▼NEXT PAGE&amp;quot; string on the bottom of the MVS menu. This is not done automatically by the system ROM.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $FFFF                              ; Special settings list (none used)&lt;br /&gt;
    dc.w    $FFFF&lt;br /&gt;
    dc.b    $FF,$FF&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    ; String table:&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Config_1.png]]&lt;br /&gt;
|[[File:Config_2.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $4220                              ; Special setting 1: 42 minutes 20 seconds&lt;br /&gt;
    dc.w    $2042                              ; Special setting 2: 20 minutes 42 seconds&lt;br /&gt;
    dc.b    $42                                ; Special setting 3: 66&lt;br /&gt;
    dc.b    $64                                ; Special setting 4: 100 (&amp;quot;INFINITE&amp;quot;)&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    dc.b    &amp;quot;TIMER 1     &amp;quot;                     ; Special setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;TIMER 2     &amp;quot;                     ; Special setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER     &amp;quot;                     ; Special setting 3&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER SPE &amp;quot;                     ; Special setting 4&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config_3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9224</id>
		<title>Software DIPs</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9224"/>
		<updated>2026-05-10T16:37:18Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Simple settings list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Softdips.png|thumb|right|A Soft DIPs setup screen.]]&lt;br /&gt;
&lt;br /&gt;
Software DIPs are a list of a maximum of 14 game-specific settings. They can be modified from the MVS [[System ROM]] menu, or with system ROM hacks for other systems.&lt;br /&gt;
&lt;br /&gt;
The settings names and their possible values are stored in the game&#039;s [[68k program header]] in a specific format, read by the system ROM to form a menu.&lt;br /&gt;
&lt;br /&gt;
On the [[MVS]], the settings are saved for each game in the [[backup RAM]].&lt;br /&gt;
&lt;br /&gt;
The settings are copied from backup RAM to [[68k user RAM|user RAM]] to &#039;&#039;&#039;BIOS_GAME_DIP&#039;&#039;&#039; ($10FD84) just before the game is started up. If no settings are found, they&#039;re initialized to the default values.&lt;br /&gt;
&lt;br /&gt;
(Does the system ROM check values pulled from the backup RAM against the bounds given by the game ? Can a corrupt backup RAM save make games crash with&lt;br /&gt;
out of bounds settings ?)&lt;br /&gt;
&lt;br /&gt;
Software DIPs settings aren&#039;t available on the AES, the system ROM always loads the game&#039;s default values.&lt;br /&gt;
&lt;br /&gt;
== Config data description ==&lt;br /&gt;
&lt;br /&gt;
Most of the following information by [[User:ElBarto|ElBarto]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;0x00&#039;&#039;&#039;&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| Game name, no termination char required.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x10&#039;&#039;&#039;&lt;br /&gt;
| 6 bytes&lt;br /&gt;
| Special settings list, 4 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x16&#039;&#039;&#039;&lt;br /&gt;
| 10 bytes&lt;br /&gt;
| Simple settings list, up to 10 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x20&#039;&#039;&#039;&lt;br /&gt;
| x*12 bytes&lt;br /&gt;
| String table. Strings are 12 bytes long and padded with 0x20 (space). Max number ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Special settings list===&lt;br /&gt;
&lt;br /&gt;
The special settings list holds 4 entries: the first 2 are for time settings, and the last 2 are for count settings.&lt;br /&gt;
&lt;br /&gt;
A time setting occupies one word, which defines the default value:&lt;br /&gt;
* The upper byte is the minutes (up to 29 ?, in BCD).&lt;br /&gt;
* The lower byte is the seconds (in BCD).&lt;br /&gt;
&lt;br /&gt;
An unused time setting must be set to 0xFFFF.&lt;br /&gt;
&lt;br /&gt;
A count setting occupies one byte, which defines the default value (not in BCD).&lt;br /&gt;
The first count setting can go from 1 to 99.&lt;br /&gt;
The second count setting is a &amp;quot;number of times&amp;quot;, it can go from 0 (displayed as &amp;quot;WITHOUT&amp;quot;) to 100 (displayed as &amp;quot;INFINITE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
An unused count setting must be set to 0xFF.&lt;br /&gt;
&lt;br /&gt;
All special settings use a single string from the strings table, for the setting&#039;s name.&lt;br /&gt;
&lt;br /&gt;
===Simple settings list===&lt;br /&gt;
&lt;br /&gt;
Each options occupies one byte.&lt;br /&gt;
&lt;br /&gt;
The upper 4 bits define the default value (starts from 0) and the lower 4 bits the number of choices.&lt;br /&gt;
&lt;br /&gt;
A few games have a simple setting entry in entry #7 with a number of choices set to zero, to show a &amp;quot;▼NEXT PAGE&amp;quot; string on the bottom of the MVS menu.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $FFFF                              ; Special settings list (none used)&lt;br /&gt;
    dc.w    $FFFF&lt;br /&gt;
    dc.b    $FF,$FF&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    ; String table:&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Config_1.png]]&lt;br /&gt;
|[[File:Config_2.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $4220                              ; Special setting 1: 42 minutes 20 seconds&lt;br /&gt;
    dc.w    $2042                              ; Special setting 2: 20 minutes 42 seconds&lt;br /&gt;
    dc.b    $42                                ; Special setting 3: 66&lt;br /&gt;
    dc.b    $64                                ; Special setting 4: 100 (&amp;quot;INFINITE&amp;quot;)&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    dc.b    &amp;quot;TIMER 1     &amp;quot;                     ; Special setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;TIMER 2     &amp;quot;                     ; Special setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER     &amp;quot;                     ; Special setting 3&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER SPE &amp;quot;                     ; Special setting 4&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config_3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9223</id>
		<title>Software DIPs</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9223"/>
		<updated>2026-05-10T13:36:17Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Special settings list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Softdips.png|thumb|right|A Soft DIPs setup screen.]]&lt;br /&gt;
&lt;br /&gt;
Software DIPs are a list of a maximum of 14 game-specific settings. They can be modified from the MVS [[System ROM]] menu, or with system ROM hacks for other systems.&lt;br /&gt;
&lt;br /&gt;
The settings names and their possible values are stored in the game&#039;s [[68k program header]] in a specific format, read by the system ROM to form a menu.&lt;br /&gt;
&lt;br /&gt;
On the [[MVS]], the settings are saved for each game in the [[backup RAM]].&lt;br /&gt;
&lt;br /&gt;
The settings are copied from backup RAM to [[68k user RAM|user RAM]] to &#039;&#039;&#039;BIOS_GAME_DIP&#039;&#039;&#039; ($10FD84) just before the game is started up. If no settings are found, they&#039;re initialized to the default values.&lt;br /&gt;
&lt;br /&gt;
(Does the system ROM check values pulled from the backup RAM against the bounds given by the game ? Can a corrupt backup RAM save make games crash with&lt;br /&gt;
out of bounds settings ?)&lt;br /&gt;
&lt;br /&gt;
Software DIPs settings aren&#039;t available on the AES, the system ROM always loads the game&#039;s default values.&lt;br /&gt;
&lt;br /&gt;
== Config data description ==&lt;br /&gt;
&lt;br /&gt;
Most of the following information by [[User:ElBarto|ElBarto]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;0x00&#039;&#039;&#039;&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| Game name, no termination char required.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x10&#039;&#039;&#039;&lt;br /&gt;
| 6 bytes&lt;br /&gt;
| Special settings list, 4 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x16&#039;&#039;&#039;&lt;br /&gt;
| 10 bytes&lt;br /&gt;
| Simple settings list, up to 10 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x20&#039;&#039;&#039;&lt;br /&gt;
| x*12 bytes&lt;br /&gt;
| String table. Strings are 12 bytes long and padded with 0x20 (space). Max number ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Special settings list===&lt;br /&gt;
&lt;br /&gt;
The special settings list holds 4 entries: the first 2 are for time settings, and the last 2 are for count settings.&lt;br /&gt;
&lt;br /&gt;
A time setting occupies one word, which defines the default value:&lt;br /&gt;
* The upper byte is the minutes (up to 29 ?, in BCD).&lt;br /&gt;
* The lower byte is the seconds (in BCD).&lt;br /&gt;
&lt;br /&gt;
An unused time setting must be set to 0xFFFF.&lt;br /&gt;
&lt;br /&gt;
A count setting occupies one byte, which defines the default value (not in BCD).&lt;br /&gt;
The first count setting can go from 1 to 99.&lt;br /&gt;
The second count setting is a &amp;quot;number of times&amp;quot;, it can go from 0 (displayed as &amp;quot;WITHOUT&amp;quot;) to 100 (displayed as &amp;quot;INFINITE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
An unused count setting must be set to 0xFF.&lt;br /&gt;
&lt;br /&gt;
All special settings use a single string from the strings table, for the setting&#039;s name.&lt;br /&gt;
&lt;br /&gt;
===Simple settings list===&lt;br /&gt;
&lt;br /&gt;
Each options occupies one byte.&lt;br /&gt;
&lt;br /&gt;
The upper 4 bits define the default value (starts from 0) and the lower 4 bits the number of choices.&lt;br /&gt;
&lt;br /&gt;
A few games have a simple setting entry with a number of choices set to zero, just to show a &amp;quot;▼NEXT PAGE&amp;quot; string on the bottom of the MVS menu.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $FFFF                              ; Special settings list (none used)&lt;br /&gt;
    dc.w    $FFFF&lt;br /&gt;
    dc.b    $FF,$FF&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    ; String table:&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Config_1.png]]&lt;br /&gt;
|[[File:Config_2.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $4220                              ; Special setting 1: 42 minutes 20 seconds&lt;br /&gt;
    dc.w    $2042                              ; Special setting 2: 20 minutes 42 seconds&lt;br /&gt;
    dc.b    $42                                ; Special setting 3: 66&lt;br /&gt;
    dc.b    $64                                ; Special setting 4: 100 (&amp;quot;INFINITE&amp;quot;)&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    dc.b    &amp;quot;TIMER 1     &amp;quot;                     ; Special setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;TIMER 2     &amp;quot;                     ; Special setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER     &amp;quot;                     ; Special setting 3&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER SPE &amp;quot;                     ; Special setting 4&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config_3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=NEO-FTC1B_board&amp;diff=9222</id>
		<title>NEO-FTC1B board</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=NEO-FTC1B_board&amp;diff=9222"/>
		<updated>2026-05-08T11:24:13Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Inputs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ftc1b.jpg|thumb|Picture courtesy of [[http://www.mvs-scans.com MVS-Scans]]. EDGE1 is on the right, EDGE2 on the left.]]&lt;br /&gt;
&lt;br /&gt;
[[Multiplayer]] [[extension board]] used with [[Kizuna Encounter - Super Tag Battle]] to allow 4 players to play on the same system. It forms a Y splitter with 2 [[JAMMA connector pinout|JAMMA]] edges to connect two displays, two pair of speakers and two sets of 2-player controls.&lt;br /&gt;
&lt;br /&gt;
It multiplexes the inputs by using selection signals coming from a 4-wire (actually 2 used) cable that connects to the [[output port]] of the {{PCB|MV1B}} or {{PCB|MV1C}}, it also provides video signal buffering and power for the speakers ([[power amp]] under the heatsink).&lt;br /&gt;
&lt;br /&gt;
=Inputs=&lt;br /&gt;
&lt;br /&gt;
The {{Reg|REG_POUTPUT}} register is used to detect the board and select which set of inputs to read.&lt;br /&gt;
* OUT1: set selection&lt;br /&gt;
* OUT2: unused&lt;br /&gt;
* OUT3: used for board detection by some versions of the [[system ROM]]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!OUT1||P1 reads||P2 reads&lt;br /&gt;
|-&lt;br /&gt;
|low||EDGE 1 P1 (P1)||EDGE 2 P1 (P2)&lt;br /&gt;
|-&lt;br /&gt;
|high||EDGE 1 P2 (P3)||EDGE 2 P2 (P4)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
When OUT3 is high, it simulates presses on particular buttons:&lt;br /&gt;
* EDGE 1 player 1 (P1) button A&lt;br /&gt;
* EDGE 2 player 1 (P2) button A&lt;br /&gt;
* EDGE 1 player 2 (P3) button B&lt;br /&gt;
* EDGE 2 player 2 (P4) button B&lt;br /&gt;
&lt;br /&gt;
=Schematic=&lt;br /&gt;
&lt;br /&gt;
[[File:Ftc1b_schematic.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartridge systems]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Kizuna_Encounter_-_Super_Tag_Battle&amp;diff=9221</id>
		<title>Kizuna Encounter - Super Tag Battle</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Kizuna_Encounter_-_Super_Tag_Battle&amp;diff=9221"/>
		<updated>2026-05-08T08:04:49Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GameInfo|right&lt;br /&gt;
|en_title=Kizuna Encounter - Super Tag Battle &lt;br /&gt;
|jp_title=Fu&#039;un Super Tag Battle&lt;br /&gt;
|jp_title2=風雲スーパータッグバトル&lt;br /&gt;
|developer=SNK&lt;br /&gt;
|ngh_id=216&lt;br /&gt;
|megcount=242&lt;br /&gt;
|mvs_release=yes&lt;br /&gt;
|mvs_release_en=y&lt;br /&gt;
|mvs_release_jp=y&lt;br /&gt;
|mvs_romset=kizuna&lt;br /&gt;
|mvs_date=1996&lt;br /&gt;
|mvs_pchip=&lt;br /&gt;
|mvs_pboard=PROGTOP&lt;br /&gt;
|mvs_cboard=CHA256&lt;br /&gt;
|aes_release=y&lt;br /&gt;
|aes_release_jp=y&lt;br /&gt;
|aes_release_en=y&lt;br /&gt;
|aes_date=08/11/96&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The MVS version of this game supports 4 players when using the [[NEO-FTC1B board]] with a compatible [[MVS_board_types|MVS board]]. This is also possible on the home console by using the [[Unibios]] and a DIY adapter.&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Unibios&amp;diff=9220</id>
		<title>Unibios</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Unibios&amp;diff=9220"/>
		<updated>2026-05-08T07:59:15Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Redirected page to Universe BIOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Universe_BIOS]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=CARD&amp;diff=9219</id>
		<title>CARD</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=CARD&amp;diff=9219"/>
		<updated>2026-05-02T09:31:52Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* $7: Load user name */&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;
Can return code $82 is last character of user name field is 0.&lt;br /&gt;
&lt;br /&gt;
[[Category:BIOS calls]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=System_ROM_tables&amp;diff=9218</id>
		<title>System ROM tables</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=System_ROM_tables&amp;diff=9218"/>
		<updated>2026-04-20T13:09:54Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* METRIC_DATA ($C02000) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All (?) [[system ROM]]s provide lookup tables for games to use. Red lines represent zero.&lt;br /&gt;
&lt;br /&gt;
=METRIC_DATA ($C02000)=&lt;br /&gt;
&lt;br /&gt;
Actually two 64, 64-entry byte tables at $C02000 and $C03000 which might be used as a 2D lookup for distance values ?&lt;br /&gt;
&lt;br /&gt;
==$C02000==&lt;br /&gt;
&lt;br /&gt;
Goes from 64~0 to 64~32.&lt;br /&gt;
&lt;br /&gt;
[[File:Lut_metric2.png]]&lt;br /&gt;
&lt;br /&gt;
==$C03000==&lt;br /&gt;
&lt;br /&gt;
Goes from 0~63 to 63~89.&lt;br /&gt;
&lt;br /&gt;
[[File:Lut_metric3.png]]&lt;br /&gt;
&lt;br /&gt;
=SIN_DATA ($C04000)=&lt;br /&gt;
&lt;br /&gt;
Two identical glitchy half-sine tables of 128 signed 16-bit words. The value overflows for one entry (at the top of the curve). There&#039;s also a glitch with two very close values in the 3rd quarter of each table.&lt;br /&gt;
&lt;br /&gt;
[[File:Lut_sine.png]]&lt;br /&gt;
&lt;br /&gt;
=RND_DATA ($C04200)=&lt;br /&gt;
&lt;br /&gt;
256 &amp;quot;random&amp;quot; bytes. Do all values appear once ?&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=68k_instructions_timings&amp;diff=9217</id>
		<title>68k instructions timings</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=68k_instructions_timings&amp;diff=9217"/>
		<updated>2026-04-15T16:19:37Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Immediate instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mirrored information from [[http://oldwww.nvg.ntnu.no/amiga/MC680x0_Sections/mc68000timing.HTML oldwww.nvg.ntnu.no]]&lt;br /&gt;
&lt;br /&gt;
The number of bus &#039;&#039;&#039;r&#039;&#039;&#039;ead and &#039;&#039;&#039;w&#039;&#039;&#039;rite cycles are shown in parenthesis as (r/w). Any other cycles are internal.&lt;br /&gt;
&lt;br /&gt;
In the following tables, the headings have the following meanings:&lt;br /&gt;
* An : Address register operand&lt;br /&gt;
* Dn : Data register operand&lt;br /&gt;
* ea : Operand specified by an effective address&lt;br /&gt;
* M : Memory effective address operand&lt;br /&gt;
&lt;br /&gt;
To get the real execution time, multiply the total cycles count by 83.33ns ([[Clock|1/12MHz]]). An example is given in each section.&lt;br /&gt;
&lt;br /&gt;
The [[68k interrupts|vertical blank]] lasts exactly 40 lines * 384 pixels * 2 cycles per pixel = 30720 cycles (2.56ms).&lt;br /&gt;
&lt;br /&gt;
See [[optimization]].&lt;br /&gt;
&lt;br /&gt;
=Effective address operand calculation=&lt;br /&gt;
&lt;br /&gt;
This table lists the number of clock periods required to compute an instruction&#039;s effective address. It includes fetching of any extension words, the address computation, and fetching of the memory operand.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Syntax||Adressing mode||B,W||L&lt;br /&gt;
|-&lt;br /&gt;
|Dn&lt;br /&gt;
|Data register direct&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|0(0/0)&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|0(0/0)&lt;br /&gt;
|-&lt;br /&gt;
|An&lt;br /&gt;
|Address register direct&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|0(0/0)&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|0(0/0)&lt;br /&gt;
|-&lt;br /&gt;
|(An)&lt;br /&gt;
|Address register indirect&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|8(2/0)&lt;br /&gt;
|-&lt;br /&gt;
|(An)+&lt;br /&gt;
|Address register indirect, post inc.&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|8(2/0)&lt;br /&gt;
|-&lt;br /&gt;
| -(An)&lt;br /&gt;
|Address register indirect, pre dec.&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|6(1/0)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|10(2/0)&lt;br /&gt;
|-&lt;br /&gt;
|d(An)&lt;br /&gt;
|Address register indirect, displacement&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|8(2/0)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|12(3/0)&lt;br /&gt;
|-&lt;br /&gt;
|d(An,ix)&lt;br /&gt;
|Address register indirect, index&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|10(2/0)&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|14(3/0)&lt;br /&gt;
|-&lt;br /&gt;
|xxx.w&lt;br /&gt;
|Absolute short&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|8(2/0)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|12(3/0)&lt;br /&gt;
|-&lt;br /&gt;
|xxx.l&lt;br /&gt;
|Absolute long&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|12(3/0)&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|16(4/0)&lt;br /&gt;
|-&lt;br /&gt;
|d(PC)&lt;br /&gt;
|PC with displacement&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|8(2/0)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|12(3/0)&lt;br /&gt;
|-&lt;br /&gt;
|d(PC,ix)&lt;br /&gt;
|PC with index&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|10(2/0)&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|14(3/0)&lt;br /&gt;
|-&lt;br /&gt;
|#xxx&lt;br /&gt;
|Immediate&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|8(2/0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Pre-dec is slower than post-inc&lt;br /&gt;
* There are no write cycles involved in processing the effective address&lt;br /&gt;
* The size of the index register (ix) does not affect execution time&lt;br /&gt;
&lt;br /&gt;
=Move instructions=&lt;br /&gt;
&lt;br /&gt;
These following two tables indicate the number of clock periods for the move instruction. This data includes instruction fetch, operand reads, and operand writes.&lt;br /&gt;
&lt;br /&gt;
==Byte and word==&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;&#039;move.b (a0)+,$10201D&#039;&#039;&#039; (Byte (An)+ to xxx.L) takes 20 cycles.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp; || Dn || An || (An) || (An)+ || -(An) || d(An) || d(An,ix) || xxx.W || xxx.L&lt;br /&gt;
|-&lt;br /&gt;
!Dn&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;green&amp;quot;|8(1/1)||class=&amp;quot;green&amp;quot;|8(1/1)&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(1/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|14(2/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)&lt;br /&gt;
|-&lt;br /&gt;
!An&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;green&amp;quot;|8(1/1)||class=&amp;quot;green&amp;quot;|8(1/1)&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(1/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|14(2/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)&lt;br /&gt;
|-&lt;br /&gt;
!(An)&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)||class=&amp;quot;green&amp;quot;|8(2/0)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;orange&amp;quot;|20(4/1)&lt;br /&gt;
|-&lt;br /&gt;
!(An)+&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)||class=&amp;quot;green&amp;quot;|8(2/0)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;orange&amp;quot;|20(4/1)&lt;br /&gt;
|-&lt;br /&gt;
!-(An)&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|10(2/0)||class=&amp;quot;green&amp;quot;|10(2/0)||class=&amp;quot;yellow&amp;quot;|14(2/1)||class=&amp;quot;yellow&amp;quot;|14(2/1)||class=&amp;quot;yellow&amp;quot;|14(2/1)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;orange&amp;quot;|22(4/1)&lt;br /&gt;
|-&lt;br /&gt;
!d(An)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;orange&amp;quot;|22(4/1)||class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;red&amp;quot;|24(5/1)&lt;br /&gt;
|-&lt;br /&gt;
!d(An,ix)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|14(3/0)||class=&amp;quot;yellow&amp;quot;|14(3/0)||class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;orange&amp;quot;|18(3/1)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|22(4/1)||class=&amp;quot;red&amp;quot;|24(4/1)||class=&amp;quot;orange&amp;quot;|22(4/1)||class=&amp;quot;red&amp;quot;|26(5/1)&lt;br /&gt;
|-&lt;br /&gt;
!xxx.W&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;orange&amp;quot;|22(4/1)||class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;red&amp;quot;|24(5/1)&lt;br /&gt;
|-&lt;br /&gt;
!xxx.L&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|16(4/0)||class=&amp;quot;yellow&amp;quot;|16(4/0)||class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;orange&amp;quot;|20(4/1)&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|24(5/1)||class=&amp;quot;red&amp;quot;|26(5/1)||class=&amp;quot;red&amp;quot;|24(5/1)||class=&amp;quot;red&amp;quot;|28(6/1)&lt;br /&gt;
|-&lt;br /&gt;
!d(PC)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;orange&amp;quot;|22(4/1)||class=&amp;quot;orange&amp;quot;|20(4/1)||class=&amp;quot;red&amp;quot;|24(5/1)&lt;br /&gt;
|-&lt;br /&gt;
!d(PC,ix)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|14(3/0)||class=&amp;quot;yellow&amp;quot;|14(3/0)||class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;orange&amp;quot;|18(3/1)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|22(4/1)||class=&amp;quot;red&amp;quot;|24(4/1)||class=&amp;quot;orange&amp;quot;|22(4/1)||class=&amp;quot;red&amp;quot;|26(5/1)&lt;br /&gt;
|-&lt;br /&gt;
!#xxx&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)||class=&amp;quot;green&amp;quot;|8(2/0)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)||class=&amp;quot;yellow&amp;quot;|12(2/1)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;orange&amp;quot;|18(3/1)||class=&amp;quot;yellow&amp;quot;|16(3/1)||class=&amp;quot;orange&amp;quot;|20(4/1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The size of the index register (ix) does not affect execution time.&lt;br /&gt;
&lt;br /&gt;
==Long==&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;&#039;move.l $05012C,4(a1,d0)&#039;&#039;&#039; (Long xxx.L to d(An,ix)) takes 34 cycles.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp; || Dn || An || (An) || (An)+ || -(An) || d(An) || d(An,ix) || xxx.W || xxx.L&lt;br /&gt;
|-&lt;br /&gt;
!Dn&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;green&amp;quot;|12(1/2)||class=&amp;quot;green&amp;quot;|12(1/2)||class=&amp;quot;green&amp;quot;|12(1/2)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|16(2/2)||class=&amp;quot;yellow&amp;quot;|18(2/2)||class=&amp;quot;yellow&amp;quot;|16(2/2)||class=&amp;quot;yellow&amp;quot;|20(3/2)&lt;br /&gt;
|-&lt;br /&gt;
!An&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;green&amp;quot;|12(1/2)||class=&amp;quot;green&amp;quot;|12(1/2)||class=&amp;quot;green&amp;quot;|12(1/2)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|16(2/2)||class=&amp;quot;yellow&amp;quot;|18(2/2)||class=&amp;quot;yellow&amp;quot;|16(2/2)||class=&amp;quot;yellow&amp;quot;|20(3/2)&lt;br /&gt;
|-&lt;br /&gt;
!(An)&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|12(3/0)||class=&amp;quot;green&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|20(3/2)||class=&amp;quot;yellow&amp;quot;|20(3/2)||class=&amp;quot;yellow&amp;quot;|20(3/2)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|28(5/2)&lt;br /&gt;
|-&lt;br /&gt;
!(An)+&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|12(3/0)||class=&amp;quot;green&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|20(3/2)||class=&amp;quot;yellow&amp;quot;|20(3/2)||class=&amp;quot;yellow&amp;quot;|20(3/2)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|28(5/2)&lt;br /&gt;
|-&lt;br /&gt;
!-(An)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|14(3/0)||class=&amp;quot;yellow&amp;quot;|14(3/0)||class=&amp;quot;orange&amp;quot;|22(3/2)||class=&amp;quot;orange&amp;quot;|22(3/2)||class=&amp;quot;orange&amp;quot;|22(3/2)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;orange&amp;quot;|28(4/2)||class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;red&amp;quot;|30(5/2)&lt;br /&gt;
|-&lt;br /&gt;
!d(An)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|16(4/0)||class=&amp;quot;yellow&amp;quot;|16(4/0)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|28(5/2)||class=&amp;quot;red&amp;quot;|30(5/2)||class=&amp;quot;orange&amp;quot;|28(5/2)||class=&amp;quot;red&amp;quot;|32(6/2)&lt;br /&gt;
|-&lt;br /&gt;
!d(An,ix)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|18(4/0)||class=&amp;quot;yellow&amp;quot;|18(4/0)||class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;orange&amp;quot;|26(4/2)&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|30(5/2)||class=&amp;quot;red&amp;quot;|32(5/2)||class=&amp;quot;red&amp;quot;|30(5/2)||class=&amp;quot;red&amp;quot;|34(6/2)&lt;br /&gt;
|-&lt;br /&gt;
!xxx.W&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|16(4/0)||class=&amp;quot;yellow&amp;quot;|16(4/0)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|28(5/2)||class=&amp;quot;red&amp;quot;|30(5/2)||class=&amp;quot;orange&amp;quot;|28(5/2)||class=&amp;quot;red&amp;quot;|32(6/2)&lt;br /&gt;
|-&lt;br /&gt;
!xxx.L&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|20(5/0)||class=&amp;quot;yellow&amp;quot;|20(5/0)||class=&amp;quot;orange&amp;quot;|28(5/2)||class=&amp;quot;orange&amp;quot;|28(5/2)||class=&amp;quot;orange&amp;quot;|28(5/2)&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|32(6/2)||class=&amp;quot;red&amp;quot;|34(6/2)||class=&amp;quot;red&amp;quot;|32(6/2)||class=&amp;quot;red&amp;quot;|36(7/2)&lt;br /&gt;
|-&lt;br /&gt;
!d(PC)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|16(4/0)||class=&amp;quot;yellow&amp;quot;|16(4/0)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|28(5/2)||class=&amp;quot;red&amp;quot;|30(5/2)||class=&amp;quot;orange&amp;quot;|28(5/2)||class=&amp;quot;red&amp;quot;|32(5/2)&lt;br /&gt;
|-&lt;br /&gt;
!d(PC,ix)&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|18(4/0)||class=&amp;quot;yellow&amp;quot;|18(4/0)||class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;orange&amp;quot;|26(4/2)&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|30(5/2)||class=&amp;quot;red&amp;quot;|32(5/2)||class=&amp;quot;red&amp;quot;|30(5/2)||class=&amp;quot;red&amp;quot;|34(6/2)&lt;br /&gt;
|-&lt;br /&gt;
!#xxx&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|12(3/0)||class=&amp;quot;green&amp;quot;|12(3/0)||class=&amp;quot;yellow&amp;quot;|20(3/2)||class=&amp;quot;yellow&amp;quot;|20(3/2)||class=&amp;quot;yellow&amp;quot;|20(3/2)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|26(4/2)||class=&amp;quot;orange&amp;quot;|24(4/2)||class=&amp;quot;orange&amp;quot;|28(5/2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The size of the index register (ix) does not affect execution time.&lt;br /&gt;
&lt;br /&gt;
=Standard instructions=&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;&#039;add.w d3,a7&#039;&#039;&#039; (Word ea Dn + An) takes 8 cycles.&lt;br /&gt;
&lt;br /&gt;
The number of clock periods shown in this table indicates the time required to perform the operations, store the results and read the next instruction. The total number of clock periods must be added respectively to those of the effective address calculation where indicated (+).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp; || Size || &amp;lt;ea&amp;gt;,An * || &amp;lt;ea&amp;gt;,Dn || Dn,&amp;lt;M&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|ADD&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|8(1/0)+||class=&amp;quot;green&amp;quot;|4(1/0)+||class=&amp;quot;orange&amp;quot;|8(1/1)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|6(1/0)+**||class=&amp;quot;yellow&amp;quot;|6(1/0)+**||class=&amp;quot;red&amp;quot;|12(1/2)+&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|AND&lt;br /&gt;
|B,W&lt;br /&gt;
| - ||class=&amp;quot;green&amp;quot;|4(1/0)+||class=&amp;quot;orange&amp;quot;|8(1/1)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
| - ||class=&amp;quot;yellow&amp;quot;|6(1/0)+**||class=&amp;quot;red&amp;quot;|12(1/2)+&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|CMP&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|6(1/0)+||class=&amp;quot;green&amp;quot;|4(1/0)+|| -&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|6(1/0)+||class=&amp;quot;yellow&amp;quot;|6(1/0)+|| -&lt;br /&gt;
|-&lt;br /&gt;
!DIVS&lt;br /&gt;
| - || - ||class=&amp;quot;red&amp;quot;|158(1/0)+|| -&lt;br /&gt;
|-&lt;br /&gt;
!DIVU&lt;br /&gt;
| - || - ||class=&amp;quot;red&amp;quot;|140(1/0)+|| -&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|EOR&lt;br /&gt;
|B,W&lt;br /&gt;
| - ||class=&amp;quot;green&amp;quot;|4(1/0) ***||class=&amp;quot;orange&amp;quot;|8(1/1) +&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
| - ||class=&amp;quot;orange&amp;quot;|8(1/0) ***||class=&amp;quot;red&amp;quot;|12(1/2) +&lt;br /&gt;
|-&lt;br /&gt;
!MULS&lt;br /&gt;
| - || - ||class=&amp;quot;red&amp;quot;|70(1/0)+*|| -&lt;br /&gt;
|-&lt;br /&gt;
!MULU&lt;br /&gt;
| - || - ||class=&amp;quot;red&amp;quot;|70(1/0)+*|| -&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|OR&lt;br /&gt;
|B,W&lt;br /&gt;
| - ||class=&amp;quot;green&amp;quot;|4(1/0) +**||class=&amp;quot;orange&amp;quot;|8(1/1) +&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
| - ||class=&amp;quot;yellow&amp;quot;|6(1/0) +**||class=&amp;quot;red&amp;quot;|12(1/2) +&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|SUB&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|8(1/0)+||class=&amp;quot;green&amp;quot;|4(1/0)+||class=&amp;quot;orange&amp;quot;|8(1/1)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|6(1/0)+**||class=&amp;quot;yellow&amp;quot;|6(1/0)+**||class=&amp;quot;red&amp;quot;|12(1/2)+&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
notes:	+ Add effective address calculation time&lt;br /&gt;
	^ Word or long only&lt;br /&gt;
	* Indicates maximum value&lt;br /&gt;
       ** The base time of six clock periods is increased to eight		&lt;br /&gt;
	  if the effective address mode is register direct or &lt;br /&gt;
	  immediate (effective address time should also be added)&lt;br /&gt;
      *** Only available effective address mode is data register direct&lt;br /&gt;
	  &lt;br /&gt;
	DIVS,DIVU - The divide algorithm used by the MC68000 provides less&lt;br /&gt;
		    than 10% difference between the best and the worst case&lt;br /&gt;
		    timings.&lt;br /&gt;
	MULS,MULU - The multiply algorithm requires 38+2n clocks where&lt;br /&gt;
		    n is defined as:&lt;br /&gt;
		MULU: n = the number of ones in the &amp;lt;ea&amp;gt;&lt;br /&gt;
		MULS: n = concatenate the &amp;lt;ea&amp;gt; with a zero as the LSB;&lt;br /&gt;
			  n is the resultant number of 10 or 01 patterns&lt;br /&gt;
			  in the 17-bit source; i.e., worst case happens&lt;br /&gt;
			  when the source is $5555&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Immediate instructions=&lt;br /&gt;
&lt;br /&gt;
The number of clock periods periods shown in this table includes the time to fetch immediate operands, perform the operations, store the results and read the next operation. The total number of clock periods must be added respectively to those of the effective address calculation where indicated (+).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&amp;amp;nbsp; || Size || #,Dn || #,An || #,M&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|ADDI&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)|| - ||class=&amp;quot;yellow&amp;quot;|12(2/1)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|16(3/0)|| - ||class=&amp;quot;red&amp;quot;|20(3/2)+&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|ADDQ&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;yellow&amp;quot;|8(1/0)*||class=&amp;quot;yellow&amp;quot;|8(1/2)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|8(1/0)||class=&amp;quot;yellow&amp;quot;|8(1/0)||class=&amp;quot;orange&amp;quot;|12(1/2)+&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|ANDI&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)|| - ||class=&amp;quot;yellow&amp;quot;|12(1/2)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|16(3/0)|| - ||class=&amp;quot;red&amp;quot;|20(3/1)+&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|CMPI&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)|| - ||class=&amp;quot;green&amp;quot;|8(2/0)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|14(3/0)|| - ||class=&amp;quot;yellow&amp;quot;|12(3/1)+&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|EORI&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)|| - ||class=&amp;quot;yellow&amp;quot;|12(2/1)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|16(3/0)|| - ||class=&amp;quot;red&amp;quot;|20(3/2)+&lt;br /&gt;
|-&lt;br /&gt;
!MOVEQ&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)|| - || -&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|ORI&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)|| - ||class=&amp;quot;yellow&amp;quot;|12(2/1)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|16(3/0)|| - ||class=&amp;quot;red&amp;quot;|20(3/2)+&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|SUBI&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|8(2/0)|| - ||class=&amp;quot;yellow&amp;quot;|12(2/1)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|16(3/0)|| - ||class=&amp;quot;red&amp;quot;|20(3/2)+&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=2|SUBQ&lt;br /&gt;
|B,W&lt;br /&gt;
|class=&amp;quot;green&amp;quot;|4(1/0)||class=&amp;quot;yellow&amp;quot;|8(1/0)*||class=&amp;quot;yellow&amp;quot;|8(1/1)+&lt;br /&gt;
|-&lt;br /&gt;
|L&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|8(1/0)||class=&amp;quot;yellow&amp;quot;|8(1/0)||class=&amp;quot;orange&amp;quot;|12(1/2)+&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
	+ Add effective address calculation time&lt;br /&gt;
	* word only&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Single operand instructions=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
This table indicates the number of clock periods for the single operand&lt;br /&gt;
instructions. The number of clock periods and the number of read and write cycles&lt;br /&gt;
must be added respectively to those of the effective address calculation&lt;br /&gt;
where indicated.&lt;br /&gt;
&lt;br /&gt;
instruction	size		register	 memory&lt;br /&gt;
&lt;br /&gt;
CLR			byte,word	4(1/0)		 8(1/1) +&lt;br /&gt;
			  long		6(1/0)		12(1/2) +&lt;br /&gt;
NBCD		  byte		6(1/0)		 8(1/1) +&lt;br /&gt;
NEG			byte,word	4(1/0)		 8(1/1) +&lt;br /&gt;
			  long		6(1/0)		12(1/2) +&lt;br /&gt;
NEGX		byte,word	4(1/0)		 8(1/1) +&lt;br /&gt;
			  long		6(1/0)		12(1/2) +&lt;br /&gt;
NOT			byte,word	4(1/0)		 8(1/1) +&lt;br /&gt;
			  long		6(1/0)		12(1/2) +&lt;br /&gt;
Scc			byte,false	4(1/0)		 8(1/1) +&lt;br /&gt;
			byte,true	6(1/0)		 8(1/1) +&lt;br /&gt;
TAS #		  byte		4(1/0)		10(1/1) +&lt;br /&gt;
TST			byte,word	4(1/0)		 4(1/0) +&lt;br /&gt;
			  long		4(1/0)		 4(1/0) +&lt;br /&gt;
&lt;br /&gt;
	+ add effective address calculation time&lt;br /&gt;
        # This instruction should never be used on the Amiga as its invisiable&lt;br /&gt;
          read/write cycle can disrupt system DMA.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Shift and rotate instructions=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
This table indicates the number of clock periods for the shift and rotate&lt;br /&gt;
instructions. The number of clock periods and the number of read and write&lt;br /&gt;
cycles must be added respectively to those of the effective address&lt;br /&gt;
calculation where indicated.&lt;br /&gt;
&lt;br /&gt;
instruction	size		register	memory&lt;br /&gt;
&lt;br /&gt;
ASR,ASL		byte,word	6+2n(1/0)	8(1/1) +&lt;br /&gt;
			  long		8+2n(1/0)	  -&lt;br /&gt;
LSR,LSL		byte,word	6+2n(1/0)	8(1/1) +&lt;br /&gt;
			  long		8+2n(1/0)	  -&lt;br /&gt;
ROR,ROL		byte,word	6+2n(1/0)	8(1/1) +&lt;br /&gt;
			  long		8+2n(1/0)	  -&lt;br /&gt;
ROXR,ROXL	byte,word	6+2n(1/0)	8(1/1) +&lt;br /&gt;
			  long		8+2n(1/0)	  -&lt;br /&gt;
&lt;br /&gt;
	+ add effective address calculation time&lt;br /&gt;
	n is the shift or rotate count&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Bit manipulation instructions=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
This table indicates the number of clock periods required for the bit&lt;br /&gt;
manipulation instructions. The number of clock periods and the number of read and &lt;br /&gt;
write cycles must be added respectively to those of the effective address&lt;br /&gt;
calculation where indicated. Dynamic: register, static: immediate.&lt;br /&gt;
&lt;br /&gt;
instruction  size            dynamic                 static&lt;br /&gt;
                        register   memory       register   memory	&lt;br /&gt;
BCHG         byte          -       8(1/1) +        -       12(2/1) +&lt;br /&gt;
             long        8(1/0) *    -          12(2/0) *     -&lt;br /&gt;
BCLR         byte          -       8(1/1) +        -       12(2/1) +&lt;br /&gt;
             long       10(1/0) *    -          14(2/0) *     -&lt;br /&gt;
BSET         byte          -       8(1/1) +        -       12(2/1) +&lt;br /&gt;
             long        8(1/0) *    -          12(2/0) *     -&lt;br /&gt;
BTST         byte          -  	   4(1/0) +        -        8(2/0) +&lt;br /&gt;
             long        6(1/0)      -          10(2/0)       -&lt;br /&gt;
&lt;br /&gt;
	+ add effective address calculation time&lt;br /&gt;
	* indicates maximum value&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conditional instructions=&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Mnemonic || Displacement || Branch taken || Not taken&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2|Bcc&lt;br /&gt;
|byte&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|10(2/0)||class=&amp;quot;green&amp;quot;|8(1/0)&lt;br /&gt;
|-&lt;br /&gt;
|word&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|10(2/0)||class=&amp;quot;orange&amp;quot;|12(1/0)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2|BRA&lt;br /&gt;
|byte&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|10(2/0)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|word&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|10(2/0)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2|BSR&lt;br /&gt;
|byte&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|18(2/2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|word&lt;br /&gt;
|class=&amp;quot;red&amp;quot;|18(2/2)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2|DBcc&lt;br /&gt;
|cc true&lt;br /&gt;
|&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|12(2/0)&lt;br /&gt;
|-&lt;br /&gt;
|cc false&lt;br /&gt;
|class=&amp;quot;yellow&amp;quot;|10(2/0)&lt;br /&gt;
|class=&amp;quot;orange&amp;quot;|14(3/0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=JMP, JSR, LEA, PEA and MOVEM instructions=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
This Table indicates the number of clock periods required for the jump,&lt;br /&gt;
jump-to-subroutine, load effective address, push effective address and&lt;br /&gt;
move multiple registers instructions.&lt;br /&gt;
&lt;br /&gt;
instr	size    (An)		(An)+		-(An)	 d(An)		d(An,ix)+   xxx.W      xxx.L      d(PC)      d(PC,ix)*&lt;br /&gt;
JMP     -	    8(2/0)	     -		      -    10(2/0)		 14(3/0)    10(2/0)    12(3/0)	  10(2/0)    14(3/0)&lt;br /&gt;
JSR     -	   16(2/2)	     -		      -	   18(2/2)		 22(2/2)    18(2/2)    20(3/2)	  18(2/2)    22(2/2)&lt;br /&gt;
LEA     -	    4(1/0)	     -		      -	    8(2/0)		 12(2/0)     8(2/0)    12(3/0)	   8(2/0)    12(2/0)&lt;br /&gt;
PEA     -	   12(1/2)	     -		      -	   16(2/2)		 20(2/2)    16(2/2)    20(3/2)	  16(2/2)    20(2/2)&lt;br /&gt;
MOVEM   word     12+4n       12+4n	      -      16+4n		   18+4n      16+4n      20+4n	    16+4n      18+4n&lt;br /&gt;
M-&amp;gt;R           (3+n/0)	   (3+n/0)	      -	   (4+n/0)		 (4+n/0)    (4+n/0)    (5+n/0)	  (4+n/0)    (4+n/0)&lt;br /&gt;
	    long     12+8n	     12+8n	      -	     16+8n		   18+8n      16+8n      20+8n	    16+8n      18+8n&lt;br /&gt;
		      (3+2n/0)    (3+2n/0)	      -   (4+2n/0)		(4+2n/0)   (4+2n/0)   (5+2n/0)	 (4+2n/0)   (4+2n/0)&lt;br /&gt;
MOVEM	word	  8+4n	     -		     8+4n	 12+4n  	   14+4n      12+4n      16+4n	    -			-&lt;br /&gt;
R-&amp;gt;M		     (2/n)	     -		    (2/n)	 (3/n)		   (3/n)      (3/n)      (4/n)	    -			-&lt;br /&gt;
	    long	  8+8n	     -		     8+8n	 12+8n  	   14+8n      12+8n      16+8n	    -			-&lt;br /&gt;
                (2/2n)	     -		   (2/2n)	(3/2n)		  (3/2n)     (3/2n)     (4/2n)	    -			-&lt;br /&gt;
&lt;br /&gt;
n is the number of registers to move&lt;br /&gt;
* is the size of the index register (ix) does not affect the instruction&#039;s&lt;br /&gt;
  execution time&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Multi-precision instructions=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
This table indicates the number of clock periods for the multi-precision&lt;br /&gt;
instructions. The number of clock periods includes the time to fetch both&lt;br /&gt;
operands, perform the operations, store the results and read the next &lt;br /&gt;
instructions.&lt;br /&gt;
&lt;br /&gt;
instruction	size		op Dn,Dn	op M,M&lt;br /&gt;
&lt;br /&gt;
ADDX		byte,word	4(1/0)		18(3/1)&lt;br /&gt;
			  long		8(1/0)		30(5/2)&lt;br /&gt;
CMPM		byte,word	  -			12(3/0)&lt;br /&gt;
			  long		  -			20(5/0)&lt;br /&gt;
SUBX		byte,word	4(1/0)		18(3/1)&lt;br /&gt;
			  long		8(1/0)		30(5/2)&lt;br /&gt;
ABCD		  byte		6(1/0)		18(3/1)&lt;br /&gt;
SBCD		  byte		6(1/0)		18(3/1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Miscellaneous instructions=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
This table indicates the number of clock periods for the following &lt;br /&gt;
miscellaneous instructions. The number of clock periods and plus the number&lt;br /&gt;
of read and write cycles must be added to those of the effective address&lt;br /&gt;
calculation where indicated.&lt;br /&gt;
&lt;br /&gt;
instruction		size	register	memory&lt;br /&gt;
&lt;br /&gt;
ANDI to CCR		byte	 20(3/0)	   -&lt;br /&gt;
ANDI to SR		word	 20(3/0)	   -&lt;br /&gt;
CHK				 -		 10(1/0) +	   -&lt;br /&gt;
EORI to CCR		byte	 20(3/0)	   -&lt;br /&gt;
EORI to SR		word	 20(3/0)	   -&lt;br /&gt;
ORI to CCR		byte	 20(3/0)	   -&lt;br /&gt;
ORI to SR		word	 20(3/0)	   -&lt;br /&gt;
MOVE from SR	 -	 	  6(1/0)	 8(1/1)+&lt;br /&gt;
MOVE to CCR	 	 -		 12(1/0)	12(1/0)+&lt;br /&gt;
MOVE to SR	 	 -		 12(1/0)	12(1/0)+&lt;br /&gt;
EXG				 -		  6(1/0)	   -&lt;br /&gt;
EXT				word	  4(1/0)	   -&lt;br /&gt;
				long	  4(1/0)	   -&lt;br /&gt;
LINK		 	 -		 16(2/2)	   -&lt;br /&gt;
MOVE from USP	 -		  4(1/0)	   -&lt;br /&gt;
MOVE to USP	 	 -		  4(1/0)	   -&lt;br /&gt;
NOP				 -		  4(1/0)	   -&lt;br /&gt;
RESET			 -		132(1/0)	   -&lt;br /&gt;
RTE				 -		 20(5/0)	   -&lt;br /&gt;
RTR				 -		 20(5/0)	   -&lt;br /&gt;
RTS				 -		 16(4/0)	   -&lt;br /&gt;
STOP		 	 -		  4(0/0)	   -&lt;br /&gt;
SWAP		 	 -		  4(1/0)	   -&lt;br /&gt;
TRAPV (No Trap)	 -		  4(1/0)	   -&lt;br /&gt;
UNLK		 	 -		 12(3/0)	   -&lt;br /&gt;
&lt;br /&gt;
	+ add effective address calculation time&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Move Peripheral instructions=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
instruction	size	register-&amp;gt;memory	memory-&amp;gt;register&lt;br /&gt;
&lt;br /&gt;
MOVEP		word	16(2/2)				16(4/0)	&lt;br /&gt;
			long	24(2/4)				24(6/0)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Exception processing=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
This table indicates the number of clock periods for exception processing.&lt;br /&gt;
The number of clock periods includes the time for all stacking, the vector&lt;br /&gt;
fetch and the fetch of the first two instruction words of the handler routine.&lt;br /&gt;
&lt;br /&gt;
	exception						periods&lt;br /&gt;
&lt;br /&gt;
	address error					50(4/7)&lt;br /&gt;
	bus error						50(4/7)&lt;br /&gt;
	CHK instruction (trap taken)	44(5/3)+&lt;br /&gt;
	Divide by Zero					42(5/3)&lt;br /&gt;
	illegal instruction				34(4/3)&lt;br /&gt;
	interrupt						44(5/3)*&lt;br /&gt;
	privilege violation				34(4/3)&lt;br /&gt;
	_____&lt;br /&gt;
	RESET **						40(6/0)&lt;br /&gt;
	trace							34(4/3)&lt;br /&gt;
	TRAP instruction				38(4/3)&lt;br /&gt;
	TRAPV instruction (trap taken)	34(4/3)&lt;br /&gt;
&lt;br /&gt;
	+ add effective address calculation time&lt;br /&gt;
	* the interrupt acknowledge cycle is assumed to take four&lt;br /&gt;
	  clock periods&lt;br /&gt;
                                    _____     ____&lt;br /&gt;
	** indicates the time from when RESET and HALT are first&lt;br /&gt;
	  sampled as negated to when instruction execution starts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;br /&gt;
[[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Puzzle_De_Pon!_R!&amp;diff=9216</id>
		<title>Puzzle De Pon! R!</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Puzzle_De_Pon!_R!&amp;diff=9216"/>
		<updated>2026-04-02T22:43:23Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GameInfo|right&lt;br /&gt;
|en_title=Puzzle De Pon! R!&lt;br /&gt;
|jp_title=Puzzle De Pon! R!&lt;br /&gt;
|jp_title2=パズル de ポン! R&lt;br /&gt;
|developer=Taito (Visco license)&lt;br /&gt;
|editor=Visco&lt;br /&gt;
|ngh_id=235&lt;br /&gt;
|megcount=32&lt;br /&gt;
|mvs_release=yes&lt;br /&gt;
|mvs_release_en=y&lt;br /&gt;
|mvs_release_jp=y&lt;br /&gt;
|mvs_romset=puzzldpr&lt;br /&gt;
|mvs_date=1997&lt;br /&gt;
|mvs_pchip=&lt;br /&gt;
|mvs_pboard=PROG_4096&lt;br /&gt;
|mvs_cboard=CHA_42G-2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Uses the same ROMs as [[Puzzle De Pon!]] (NGH 202) except for S1 and P1.&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Neodev:Privacy_policy&amp;diff=9214</id>
		<title>Neodev:Privacy policy</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Neodev:Privacy_policy&amp;diff=9214"/>
		<updated>2026-03-21T23:00:00Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Created page with &amp;quot;&amp;lt;h1&amp;gt;Privacy Policy&amp;lt;/h1&amp;gt; &amp;lt;p&amp;gt;This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;We use Your Personal Data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;Interpretation and Definitions&amp;lt;/h2&amp;gt; &amp;lt;h3&amp;gt;Interpr...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Privacy Policy&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We use Your Personal Data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Interpretation and Definitions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Interpretation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The words whose initial letters are capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Definitions&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;For the purposes of this Privacy Policy:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Account&amp;lt;/strong&amp;gt; means a unique account created for You to access our Service or parts of our Service.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Affiliate&amp;lt;/strong&amp;gt; means an entity that controls, is controlled by, or is under common control with a party, where &amp;amp;quot;control&amp;amp;quot; means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Company&amp;lt;/strong&amp;gt; (referred to as either &amp;amp;quot;the Company&amp;amp;quot;, &amp;amp;quot;We&amp;amp;quot;, &amp;amp;quot;Us&amp;amp;quot; or &amp;amp;quot;Our&amp;amp;quot; in this Privacy Policy) refers to wiki.neogeodev.org.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Cookies&amp;lt;/strong&amp;gt; are small files that are placed on Your computer, mobile device or any other device by a website, containing the details of Your browsing history on that website among its many uses.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Country&amp;lt;/strong&amp;gt; refers to:  France&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Device&amp;lt;/strong&amp;gt; means any device that can access the Service such as a computer, a cell phone or a digital tablet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Personal Data&amp;lt;/strong&amp;gt; (or &amp;amp;quot;Personal Information&amp;amp;quot;) is any information that relates to an identified or identifiable individual.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We use &amp;amp;quot;Personal Data&amp;amp;quot; and &amp;amp;quot;Personal Information&amp;amp;quot; interchangeably unless a law uses a specific term.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Service&amp;lt;/strong&amp;gt; refers to the Website.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Service Provider&amp;lt;/strong&amp;gt; means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Usage Data&amp;lt;/strong&amp;gt; refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Website&amp;lt;/strong&amp;gt; refers to wiki.neogeodev.org, accessible from &amp;lt;a href=&amp;quot;https://wiki.neogeodev.org&amp;quot; rel=&amp;quot;external nofollow noopener&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;https://wiki.neogeodev.org&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;You&amp;lt;/strong&amp;gt; means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Collecting and Using Your Personal Data&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Types of Data Collected&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Personal Data&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Email address&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Usage Data&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Usage Data is collected automatically when using the Service.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Usage Data may include information such as Your Device&#039;s Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and date of Your visit, unique device identifiers and other diagnostic data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When You access the Service by or through a mobile device, We may collect certain information automatically, including, but not limited to, the type of mobile device You use, the IP address of Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, and other diagnostic data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We may also collect information that Your browser sends whenever You visit Our Service or when You access the Service by or through a mobile device.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Tracking Technologies and Cookies&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. Tracking technologies We use include beacons, tags, and scripts to collect and track information and to improve and analyze Our Service. The technologies We use may include:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Cookies or Browser Cookies.&amp;lt;/strong&amp;gt; A cookie is a small file placed on Your Device. You can instruct Your browser to refuse all Cookies or to indicate when a Cookie is being sent. However, if You do not accept Cookies, You may not be able to use some parts of our Service.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Cookies can be &amp;amp;quot;Persistent&amp;amp;quot; or &amp;amp;quot;Session&amp;amp;quot; Cookies. Persistent Cookies remain on Your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close Your web browser.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We use both Session and Persistent Cookies for the purposes set out below:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Necessary / Essential Cookies&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Type: Session Cookies&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Administered by: Us&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Purpose: These Cookies are essential to provide You with services available through the Website and to enable You to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. Without these Cookies, the services that You have asked for cannot be provided, and We only use these Cookies to provide You with those services.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Functionality Cookies&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Type: Persistent Cookies&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Administered by: Us&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Purpose: These Cookies allow Us to remember choices You make when You use the Website, such as remembering your login details or language preference. The purpose of these Cookies is to provide You with a more personal experience and to avoid You having to re-enter your preferences every time You use the Website.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Use of Your Personal Data&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Company may use Personal Data for the following purposes:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;To provide and maintain our Service&amp;lt;/strong&amp;gt;, including to monitor the usage of our Service.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;To manage Your Account:&amp;lt;/strong&amp;gt; to manage Your registration as a user of the Service. The Personal Data You provide can give You access to different functionalities of the Service that are available to You as a registered user.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;To manage Your requests:&amp;lt;/strong&amp;gt; To attend and manage Your requests to Us.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We may share Your Personal Data in the following situations:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;With Your consent&amp;lt;/strong&amp;gt;: We may disclose Your Personal Data for any other purpose with Your consent.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Retention of Your Personal Data&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for example, if We are required to retain Your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where possible, We apply shorter retention periods and/or reduce identifiability by deleting, aggregating, or anonymizing data. Unless otherwise stated, the retention periods below are maximum periods (&amp;amp;quot;up to&amp;amp;quot;) and We may delete or anonymize data sooner when it is no longer needed for the relevant purpose. We apply different retention periods to different categories of Personal Data based on the purpose of processing and legal obligations:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Account Information&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;User Accounts: retained for the duration of your account relationship plus up to 24 months after account closure to handle any post-termination issues or resolve disputes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Usage Data&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Website analytics data (cookies, IP addresses, device identifiers): up to 24 months from the date of collection, which allows us to analyze trends while respecting privacy principles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Server logs (IP addresses, access times): up to 24 months for security monitoring and troubleshooting purposes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Usage Data is retained in accordance with the retention periods described above, and may be retained longer only where necessary for security, fraud prevention, or legal compliance.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We may retain Personal Data beyond the periods stated above for different reasons:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Legal obligation: We are required by law to retain specific data (e.g., financial records for tax authorities).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Legal claims: Data is necessary to establish, exercise, or defend legal claims.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Your explicit request: You ask Us to retain specific information.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Technical limitations: Data exists in backup systems that are scheduled for routine deletion.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You may request information about how long We will retain Your Personal Data by contacting Us.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When retention periods expire, We securely delete or anonymize Personal Data according to the following procedures:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Deletion: Personal Data is removed from Our systems and no longer actively processed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Backup retention: Residual copies may remain in encrypted backups for a limited period consistent with our backup retention schedule and are not restored except where necessary for security, disaster recovery, or legal compliance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Anonymization: In some cases, We convert Personal Data into anonymous statistical data that cannot be linked back to You. This anonymized data may be retained indefinitely for research and analytics.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Transfer of Your Personal Data&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Your information, including Personal Data, is processed at the Company&#039;s operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to — and maintained on — computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ from those from Your jurisdiction.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where required by applicable law, We will ensure that international transfers of Your Personal Data are subject to appropriate safeguards and supplementary measures where appropriate. The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of Your data and other personal information.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Delete Your Personal Data&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You have the right to delete or request that We assist in deleting the Personal Data that We have collected about You.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Our Service may give You the ability to delete certain information about You from within the Service.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You may update, amend, or delete Your information at any time by signing in to Your Account, if you have one, and visiting the account settings section that allows you to manage Your personal information. You may also contact Us to request access to, correct, or delete any Personal Data that You have provided to Us.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis to do so.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Disclosure of Your Personal Data&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Business Transactions&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Law enforcement&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Other legal requirements&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Comply with a legal obligation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Protect and defend the rights or property of the Company&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Prevent or investigate possible wrongdoing in connection with the Service&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Protect the personal safety of Users of the Service or the public&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Protect against legal liability&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Security of Your Personal Data&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially reasonable means to protect Your Personal Data, We cannot guarantee its absolute security.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Children&#039;s Privacy&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Our Service does not address anyone under the age of 16. We do not knowingly collect personally identifiable information from anyone under the age of 16. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 16 without verification of parental consent, We take steps to remove that information from Our servers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent&#039;s consent before We collect and use that information.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Links to Other Websites&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party&#039;s site. We strongly advise You to review the Privacy Policy of every site You visit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Changes to this Privacy Policy&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Contact Us&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you have any questions about this Privacy Policy, You can contact us:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;By email: furrtek@gmail.com&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Koston&amp;diff=9213</id>
		<title>User talk:Koston</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Koston&amp;diff=9213"/>
		<updated>2026-03-21T21:58:46Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to &#039;&#039;NeoGeo Development Wiki&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 22:58, 21 March 2026 (CET)&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Palette_RAM&amp;diff=9212</id>
		<title>Palette RAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Palette_RAM&amp;diff=9212"/>
		<updated>2026-03-17T12:47:48Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Aes_palram.jpg|thumb|right|CXK5864 8KiB RAM chips as palette RAM in a AES system]]&lt;br /&gt;
[[File:CXK5864BSP-10L.jpg|thumb|right|CXK5864 8KiB RAM chips as palette RAM in a MV2F system]]&lt;br /&gt;
[[File:BR6265BF-10SL.jpg|thumb|right|BR6265BF 8KiB RAM chip as half of palette RAM in a MV1AX system]]&lt;br /&gt;
&lt;br /&gt;
Palette RAM is 16KiB (2 banks of 256 palettes of 16, 16bit [[colors]]), it contains color data for each [[palettes|palette]].&lt;br /&gt;
&lt;br /&gt;
It is accessible directly from the [[68k]] [[68k memory map|memory space]] at any time.&lt;br /&gt;
Pixels with incorrect colors may show if accessed during active display.&lt;br /&gt;
&lt;br /&gt;
=[[Memory speed|Speed]]=&lt;br /&gt;
&lt;br /&gt;
Should be 120ns or less (3mclk). Example: CXK5864BSP-10L is 100ns&lt;br /&gt;
&lt;br /&gt;
[[Category:Video system]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9210</id>
		<title>User talk:Furrtek</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9210"/>
		<updated>2026-02-26T08:59:45Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cyberwillis: Hi==&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 12:59:22 AM)&lt;br /&gt;
&lt;br /&gt;
Hi! Congratulations in taking the charge for the Wiki page !&lt;br /&gt;
&lt;br /&gt;
I would like to understand one change that you made recently. I&#039;ve noticed you have changed an information in NEO-ZMC page, regarding the bank switching activation.&lt;br /&gt;
&lt;br /&gt;
From:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$8103&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $8103 and not just $0103 ?)&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
&lt;br /&gt;
This is a work I had done more or less, 22+ years ago, directly on the hardware and in fact I had published earlier a big table related to all the precise possibilities of the Chip I had found that time. [https://wiki.neogeodev.org/index.php?title=NEO-ZMC&amp;amp;oldid=1715 | NEO-ZMC (Table)].&lt;br /&gt;
&lt;br /&gt;
There is evidence of a different ZMC release? How did you get this $810B activation?&lt;br /&gt;
&lt;br /&gt;
Let me know.&lt;br /&gt;
&lt;br /&gt;
: Thanks ! Hoping nothing didn&#039;t break in the transition. About the edit, it&#039;s true that setting the address bus to $xx03 would work, but that means the z80 is accessing port $03, not $0B, so that wouldn&#039;t toggle SDRD0 and wouldn&#039;t effectively set the bank. NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1. I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ? Do you remember why you had to set SDA15 ? Looking at the logic in ZMC2, it shouldn&#039;t be required.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 03:42, 25 February 2026 (CET)&lt;br /&gt;
---------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 5:45:20 AM)&lt;br /&gt;
&lt;br /&gt;
Hi again, &lt;br /&gt;
Sorry, the only thing i just noticed that is broken is my ZMC schematic I uploaded in 2011, for some reasn has the wrong pinouts, I will upload the correct one soon I find it.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q:&amp;quot;I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: More or less like that but not manually. I sent signals from a device I had built. Before attack the the CMC I had to study the ZMC first.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q1: &amp;quot;NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Q2: &amp;quot;Do you remember why you had to set SDA15?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: There aren&#039;t just 2 bits to be set. In fact are 10 bits to be set. A 4MBit M1 Rom has 32 words to correct access all the 32 banks. The lower bank being $8003 and the higher is $9F03. This is trivial for the NEO-ZMC, not so trivial for NEO-CMC that uses the same logic plus a Checksum key to keep everything sinchronized and being decrypted.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Looking at the logic in ZMC2, it shouldn&#039;t be required&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I didn&#039;t had an AES cartridge in hand to test it out. The ZMC seems to be embedded in ZMC2 in some way, because ZMC behaves the same way in CMC AES and MVS, with different set of pins for Cs and S&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Why $8003 and not just $0003 ?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I believe the Z80 access the M1 as if was a RAM ($8000-$FFFF) opposed to ROM space ($0000-$7FFF), to mirror the bank on internal RAM. The M1 is being accessed all the time after millisseconds the hardware is turned on&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
That&#039;s a port address, not memory. Window 3 only has a 5-bit latch for its bank number, so SDA[15:13] don&#039;t matter.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 7:24:31 AM)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;Yes we are still only talking about ZMC, may be technically be different from the point of view of the Z80 but to me is the same, because I had to access ZMC / CMC to get access to M1 in the same way. This is what I tried to let it clear. If you had confirmed that to access the ZMC / CMC (transparent to NEO-GEO) needs a &#039;&#039;&#039;B&#039;&#039;&#039; but for the ZMC point of view it sees a &#039;&#039;&#039;3&#039;&#039;&#039;, what is the correct pattern to use ? We will talk about components in the point of view of the processor accessing it or the point of view of what the chip need to be setted ? &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;What do you mean a different story? Ignoring the part of the Scramble and ignoring the part of S1 and Cs is the same ZMC there that has to be accessed the same way, what part of this is not clear?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ok, good to know the ZMC logic hasn&#039;t evolved in CMC. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 3:54:43 PM)&lt;br /&gt;
  &#039;&#039;&#039;It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip.&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;Ok, help me out here to understand your point, lets walk though the setting of &#039;&#039;&#039;second&#039;&#039;&#039; bank:&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 set to 0 (write mode)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;With P15~0 receiving $8103 (1000 0001 0000 0011), ZMC will receive &#039;&#039;&#039;$207&#039;&#039;&#039; (10000001------11 =&amp;gt; 10 0000 0111).&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 should change to lock the bank set: 0 to 1 (fix bank)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 should keep in 1 (read mode)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;With P15~0 receiving &#039;&#039;&#039;$8000~$BFFF&#039;&#039;&#039;, the ZMC will be now mapping to the range &#039;&#039;&#039;$4000~7FFF&#039;&#039;&#039; at the M1.&#039;&#039;&lt;br /&gt;
 - sure the a0 a1 as 00, 01, 10, 11 will set different banking ranges in total: 00=64k m1, 01=128K m1, 10=256K m1, 11=512K m1.&lt;br /&gt;
 &#039;&#039;In the page you said, instead $8103, the Z80 send $810B. The point is, how the Z80 sending $810B will be converted to P15~0 receiving $8103?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 23:30, 25 February 2026 (CET)&lt;br /&gt;
  $810B: 1000000100001011 full SDA[15:0] bus&lt;br /&gt;
  $8103: 10000001------11 as seen by NEO-ZMC&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Thursday, February 26, 2026 at 8:41:34 AM)&lt;br /&gt;
  Ok. I was thinking there was more into it, or some kind of limitation from the z80, and I was wondering how then it would be able to later cover all the range of the memory if from setting the banking would have such limitation. &lt;br /&gt;
  I will review the WORD setting if was really necessary SDA15=1 or was just a convenience. &lt;br /&gt;
  Thank you for the  clarifications !&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 09:59, 26 February 2026 (CET)&lt;br /&gt;
  Nothing more than that ! I&#039;m curious now, were you involved with figuring out the decryption / emulation of CMC games ? I don&#039;t know the backstory behind that.&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9209</id>
		<title>User talk:Furrtek</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9209"/>
		<updated>2026-02-26T08:59:22Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cyberwillis: Hi==&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 12:59:22 AM)&lt;br /&gt;
&lt;br /&gt;
Hi! Congratulations in taking the charge for the Wiki page !&lt;br /&gt;
&lt;br /&gt;
I would like to understand one change that you made recently. I&#039;ve noticed you have changed an information in NEO-ZMC page, regarding the bank switching activation.&lt;br /&gt;
&lt;br /&gt;
From:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$8103&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $8103 and not just $0103 ?)&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
&lt;br /&gt;
This is a work I had done more or less, 22+ years ago, directly on the hardware and in fact I had published earlier a big table related to all the precise possibilities of the Chip I had found that time. [https://wiki.neogeodev.org/index.php?title=NEO-ZMC&amp;amp;oldid=1715 | NEO-ZMC (Table)].&lt;br /&gt;
&lt;br /&gt;
There is evidence of a different ZMC release? How did you get this $810B activation?&lt;br /&gt;
&lt;br /&gt;
Let me know.&lt;br /&gt;
&lt;br /&gt;
: Thanks ! Hoping nothing didn&#039;t break in the transition. About the edit, it&#039;s true that setting the address bus to $xx03 would work, but that means the z80 is accessing port $03, not $0B, so that wouldn&#039;t toggle SDRD0 and wouldn&#039;t effectively set the bank. NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1. I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ? Do you remember why you had to set SDA15 ? Looking at the logic in ZMC2, it shouldn&#039;t be required.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 03:42, 25 February 2026 (CET)&lt;br /&gt;
---------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 5:45:20 AM)&lt;br /&gt;
&lt;br /&gt;
Hi again, &lt;br /&gt;
Sorry, the only thing i just noticed that is broken is my ZMC schematic I uploaded in 2011, for some reasn has the wrong pinouts, I will upload the correct one soon I find it.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q:&amp;quot;I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: More or less like that but not manually. I sent signals from a device I had built. Before attack the the CMC I had to study the ZMC first.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q1: &amp;quot;NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Q2: &amp;quot;Do you remember why you had to set SDA15?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: There aren&#039;t just 2 bits to be set. In fact are 10 bits to be set. A 4MBit M1 Rom has 32 words to correct access all the 32 banks. The lower bank being $8003 and the higher is $9F03. This is trivial for the NEO-ZMC, not so trivial for NEO-CMC that uses the same logic plus a Checksum key to keep everything sinchronized and being decrypted.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Looking at the logic in ZMC2, it shouldn&#039;t be required&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I didn&#039;t had an AES cartridge in hand to test it out. The ZMC seems to be embedded in ZMC2 in some way, because ZMC behaves the same way in CMC AES and MVS, with different set of pins for Cs and S&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Why $8003 and not just $0003 ?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I believe the Z80 access the M1 as if was a RAM ($8000-$FFFF) opposed to ROM space ($0000-$7FFF), to mirror the bank on internal RAM. The M1 is being accessed all the time after millisseconds the hardware is turned on&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
That&#039;s a port address, not memory. Window 3 only has a 5-bit latch for its bank number, so SDA[15:13] don&#039;t matter.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 7:24:31 AM)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;Yes we are still only talking about ZMC, may be technically be different from the point of view of the Z80 but to me is the same, because I had to access ZMC / CMC to get access to M1 in the same way. This is what I tried to let it clear. If you had confirmed that to access the ZMC / CMC (transparent to NEO-GEO) needs a &#039;&#039;&#039;B&#039;&#039;&#039; but for the ZMC point of view it sees a &#039;&#039;&#039;3&#039;&#039;&#039;, what is the correct pattern to use ? We will talk about components in the point of view of the processor accessing it or the point of view of what the chip need to be setted ? &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;What do you mean a different story? Ignoring the part of the Scramble and ignoring the part of S1 and Cs is the same ZMC there that has to be accessed the same way, what part of this is not clear?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ok, good to know the ZMC logic hasn&#039;t evolved in CMC. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 3:54:43 PM)&lt;br /&gt;
  &#039;&#039;&#039;It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip.&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;Ok, help me out here to understand your point, lets walk though the setting of &#039;&#039;&#039;second&#039;&#039;&#039; bank:&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 set to 0 (write mode)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;With P15~0 receiving $8103 (1000 0001 0000 0011), ZMC will receive &#039;&#039;&#039;$207&#039;&#039;&#039; (10000001------11 =&amp;gt; 10 0000 0111).&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 should change to lock the bank set: 0 to 1 (fix bank)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 should keep in 1 (read mode)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;With P15~0 receiving &#039;&#039;&#039;$8000~$BFFF&#039;&#039;&#039;, the ZMC will be now mapping to the range &#039;&#039;&#039;$4000~7FFF&#039;&#039;&#039; at the M1.&#039;&#039;&lt;br /&gt;
 - sure the a0 a1 as 00, 01, 10, 11 will set different banking ranges in total: 00=64k m1, 01=128K m1, 10=256K m1, 11=512K m1.&lt;br /&gt;
 &#039;&#039;In the page you said, instead $8103, the Z80 send $810B. The point is, how the Z80 sending $810B will be converted to P15~0 receiving $8103?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 23:30, 25 February 2026 (CET)&lt;br /&gt;
  $810B: 1000000100001011 full SDA[15:0] bus&lt;br /&gt;
  $8103: 10000001------11 as seen by NEO-ZMC&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Thursday, February 26, 2026 at 8:41:34 AM)&lt;br /&gt;
  Ok. I was thinking there was more into it, or some kind of limitation from the z80, and I was wondering how then it would be able to later cover all the range of the memory if from setting the banking would have such limitation. &lt;br /&gt;
  I will review the WORD setting if was really necessary SDA15=1 or was just a convenience. &lt;br /&gt;
  Thank you for the  clarifications !&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 09:59, 26 February 2026 (CET)&lt;br /&gt;
Nothing more than that ! I&#039;m curious now, were you involved with figuring out the decryption / emulation of CMC games ? I don&#039;t know the backstory of that.&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9204</id>
		<title>User talk:Furrtek</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9204"/>
		<updated>2026-02-25T22:32:18Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cyberwillis: Hi==&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 12:59:22 AM)&lt;br /&gt;
&lt;br /&gt;
Hi! Congratulations in taking the charge for the Wiki page !&lt;br /&gt;
&lt;br /&gt;
I would like to understand one change that you made recently. I&#039;ve noticed you have changed an information in NEO-ZMC page, regarding the bank switching activation.&lt;br /&gt;
&lt;br /&gt;
From:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$8103&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $8103 and not just $0103 ?)&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
&lt;br /&gt;
This is a work I had done more or less, 22+ years ago, directly on the hardware and in fact I had published earlier a big table related to all the precise possibilities of the Chip I had found that time. [https://wiki.neogeodev.org/index.php?title=NEO-ZMC&amp;amp;oldid=1715 | NEO-ZMC (Table)].&lt;br /&gt;
&lt;br /&gt;
There is evidence of a different ZMC release? How did you get this $810B activation?&lt;br /&gt;
&lt;br /&gt;
Let me know.&lt;br /&gt;
&lt;br /&gt;
: Thanks ! Hoping nothing didn&#039;t break in the transition. About the edit, it&#039;s true that setting the address bus to $xx03 would work, but that means the z80 is accessing port $03, not $0B, so that wouldn&#039;t toggle SDRD0 and wouldn&#039;t effectively set the bank. NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1. I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ? Do you remember why you had to set SDA15 ? Looking at the logic in ZMC2, it shouldn&#039;t be required.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 03:42, 25 February 2026 (CET)&lt;br /&gt;
---------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 5:45:20 AM)&lt;br /&gt;
&lt;br /&gt;
Hi again, &lt;br /&gt;
Sorry, the only thing i just noticed that is broken is my ZMC schematic I uploaded in 2011, for some reasn has the wrong pinouts, I will upload the correct one soon I find it.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q:&amp;quot;I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: More or less like that but not manually. I sent signals from a device I had built. Before attack the the CMC I had to study the ZMC first.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q1: &amp;quot;NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Q2: &amp;quot;Do you remember why you had to set SDA15?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: There aren&#039;t just 2 bits to be set. In fact are 10 bits to be set. A 4MBit M1 Rom has 32 words to correct access all the 32 banks. The lower bank being $8003 and the higher is $9F03. This is trivial for the NEO-ZMC, not so trivial for NEO-CMC that uses the same logic plus a Checksum key to keep everything sinchronized and being decrypted.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Looking at the logic in ZMC2, it shouldn&#039;t be required&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I didn&#039;t had an AES cartridge in hand to test it out. The ZMC seems to be embedded in ZMC2 in some way, because ZMC behaves the same way in CMC AES and MVS, with different set of pins for Cs and S&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Why $8003 and not just $0003 ?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I believe the Z80 access the M1 as if was a RAM ($8000-$FFFF) opposed to ROM space ($0000-$7FFF), to mirror the bank on internal RAM. The M1 is being accessed all the time after millisseconds the hardware is turned on&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
That&#039;s a port address, not memory. Window 3 only has a 5-bit latch for its bank number, so SDA[15:13] don&#039;t matter.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 7:24:31 AM)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;Yes we are still only talking about ZMC, may be technically be different from the point of view of the Z80 but to me is the same, because I had to access ZMC / CMC to get access to M1 in the same way. This is what I tried to let it clear. If you had confirmed that to access the ZMC / CMC (transparent to NEO-GEO) needs a &#039;&#039;&#039;B&#039;&#039;&#039; but for the ZMC point of view it sees a &#039;&#039;&#039;3&#039;&#039;&#039;, what is the correct pattern to use ? We will talk about components in the point of view of the processor accessing it or the point of view of what the chip need to be setted ? &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;What do you mean a different story? Ignoring the part of the Scramble and ignoring the part of S1 and Cs is the same ZMC there that has to be accessed the same way, what part of this is not clear?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ok, good to know the ZMC logic hasn&#039;t evolved in CMC. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 3:54:43 PM)&lt;br /&gt;
  &#039;&#039;&#039;It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip.&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;Ok, help me out here to understand your point, lets walk though the setting of &#039;&#039;&#039;second&#039;&#039;&#039; bank:&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 set to 0 (write mode)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;With P15~0 receiving $8103 (1000 0001 0000 0011), ZMC will receive &#039;&#039;&#039;$207&#039;&#039;&#039; (10000001------11 =&amp;gt; 10 0000 0111).&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 should change to lock the bank set: 0 to 1 (fix bank)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 should keep in 1 (read mode)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;With P15~0 receiving &#039;&#039;&#039;$8000~$BFFF&#039;&#039;&#039;, the ZMC will be now mapping to the range &#039;&#039;&#039;$4000~7FFF&#039;&#039;&#039; at the M1.&#039;&#039;&lt;br /&gt;
 - sure the a0 a1 as 00, 01, 10, 11 will set different banking ranges in total: 00=64k m1, 01=128K m1, 10=256K m1, 11=512K m1.&lt;br /&gt;
 &#039;&#039;In the page you said, instead $8103, the Z80 send $810B. The point is, how the Z80 sending $810B will be converted to P15~0 receiving $8103?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 23:30, 25 February 2026 (CET)&lt;br /&gt;
  $810B: 1000000100001011 full SDA[15:0] bus&lt;br /&gt;
  $8103: 10000001------11 as seen by NEO-ZMC&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9203</id>
		<title>User talk:Furrtek</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9203"/>
		<updated>2026-02-25T22:30:19Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cyberwillis: Hi==&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 12:59:22 AM)&lt;br /&gt;
&lt;br /&gt;
Hi! Congratulations in taking the charge for the Wiki page !&lt;br /&gt;
&lt;br /&gt;
I would like to understand one change that you made recently. I&#039;ve noticed you have changed an information in NEO-ZMC page, regarding the bank switching activation.&lt;br /&gt;
&lt;br /&gt;
From:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$8103&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $8103 and not just $0103 ?)&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
&lt;br /&gt;
This is a work I had done more or less, 22+ years ago, directly on the hardware and in fact I had published earlier a big table related to all the precise possibilities of the Chip I had found that time. [https://wiki.neogeodev.org/index.php?title=NEO-ZMC&amp;amp;oldid=1715 | NEO-ZMC (Table)].&lt;br /&gt;
&lt;br /&gt;
There is evidence of a different ZMC release? How did you get this $810B activation?&lt;br /&gt;
&lt;br /&gt;
Let me know.&lt;br /&gt;
&lt;br /&gt;
: Thanks ! Hoping nothing didn&#039;t break in the transition. About the edit, it&#039;s true that setting the address bus to $xx03 would work, but that means the z80 is accessing port $03, not $0B, so that wouldn&#039;t toggle SDRD0 and wouldn&#039;t effectively set the bank. NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1. I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ? Do you remember why you had to set SDA15 ? Looking at the logic in ZMC2, it shouldn&#039;t be required.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 03:42, 25 February 2026 (CET)&lt;br /&gt;
---------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 5:45:20 AM)&lt;br /&gt;
&lt;br /&gt;
Hi again, &lt;br /&gt;
Sorry, the only thing i just noticed that is broken is my ZMC schematic I uploaded in 2011, for some reasn has the wrong pinouts, I will upload the correct one soon I find it.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q:&amp;quot;I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: More or less like that but not manually. I sent signals from a device I had built. Before attack the the CMC I had to study the ZMC first.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q1: &amp;quot;NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Q2: &amp;quot;Do you remember why you had to set SDA15?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: There aren&#039;t just 2 bits to be set. In fact are 10 bits to be set. A 4MBit M1 Rom has 32 words to correct access all the 32 banks. The lower bank being $8003 and the higher is $9F03. This is trivial for the NEO-ZMC, not so trivial for NEO-CMC that uses the same logic plus a Checksum key to keep everything sinchronized and being decrypted.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Looking at the logic in ZMC2, it shouldn&#039;t be required&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I didn&#039;t had an AES cartridge in hand to test it out. The ZMC seems to be embedded in ZMC2 in some way, because ZMC behaves the same way in CMC AES and MVS, with different set of pins for Cs and S&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Why $8003 and not just $0003 ?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I believe the Z80 access the M1 as if was a RAM ($8000-$FFFF) opposed to ROM space ($0000-$7FFF), to mirror the bank on internal RAM. The M1 is being accessed all the time after millisseconds the hardware is turned on&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
That&#039;s a port address, not memory. Window 3 only has a 5-bit latch for its bank number, so SDA[15:13] don&#039;t matter.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 7:24:31 AM)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;Yes we are still only talking about ZMC, may be technically be different from the point of view of the Z80 but to me is the same, because I had to access ZMC / CMC to get access to M1 in the same way. This is what I tried to let it clear. If you had confirmed that to access the ZMC / CMC (transparent to NEO-GEO) needs a &#039;&#039;&#039;B&#039;&#039;&#039; but for the ZMC point of view it sees a &#039;&#039;&#039;3&#039;&#039;&#039;, what is the correct pattern to use ? We will talk about components in the point of view of the processor accessing it or the point of view of what the chip need to be setted ? &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;What do you mean a different story? Ignoring the part of the Scramble and ignoring the part of S1 and Cs is the same ZMC there that has to be accessed the same way, what part of this is not clear?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ok, good to know the ZMC logic hasn&#039;t evolved in CMC. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 3:54:43 PM)&lt;br /&gt;
  &#039;&#039;&#039;It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip.&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;Ok, help me out here to understand your point, lets walk though the setting of &#039;&#039;&#039;second&#039;&#039;&#039; bank:&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 set to 0 (write mode)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;With P15~0 receiving $8103 (1000 0001 0000 0011), ZMC will receive &#039;&#039;&#039;$207&#039;&#039;&#039; (10000001------11 =&amp;gt; 10 0000 0111).&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 should change to lock the bank set: 0 to 1 (fix bank)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;SRD0 should keep in 1 (read mode)&#039;&#039;&lt;br /&gt;
 - &#039;&#039;With P15~0 receiving &#039;&#039;&#039;$8000~$BFFF&#039;&#039;&#039;, the ZMC will be now mapping to the range &#039;&#039;&#039;$4000~7FFF&#039;&#039;&#039; at the M1.&#039;&#039;&lt;br /&gt;
 - sure the a0 a1 as 00, 01, 10, 11 will set different banking ranges in total: 00=64k m1, 01=128K m1, 10=256K m1, 11=512K m1.&lt;br /&gt;
 &#039;&#039;In the page you said, instead $8103, the Z80 send $810B. The point is, how the Z80 sending $810B will be converted to P15~0 receiving $8103?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 23:30, 25 February 2026 (CET)&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
$810B: 1000000100001011 full SDA[15:0] bus&lt;br /&gt;
$8103: 10000001------11 as seen by NEO-ZMC&lt;br /&gt;
&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=NEO-ZMC&amp;diff=9188</id>
		<title>NEO-ZMC</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=NEO-ZMC&amp;diff=9188"/>
		<updated>2026-02-25T07:48:05Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ChipInfo&lt;br /&gt;
|picture=crt_zmc.jpg&lt;br /&gt;
|pkg=SOIC24&lt;br /&gt;
|manu=fujitsu&lt;br /&gt;
|date=1991 ?&lt;br /&gt;
|gates=&lt;br /&gt;
|used_on=[[cartridges]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Chipname|Z80}} &#039;&#039;&#039;M&#039;&#039;&#039;emory &#039;&#039;&#039;C&#039;&#039;&#039;ontroller. Handles the [[Z80]] bankswitching in cartridges. To save pins, the Z80&#039;s upper address line are also used as data input. The chip&#039;s write strobe SDRD0 is [[Z80 port map|port]] address decoded inside the system when SDA[3:2] = 2 (ports $8~$B).&lt;br /&gt;
&lt;br /&gt;
Internal logic: [https://github.com/furrtek/Neogeo_MiSTer_old/blob/master/io/zmc.v zmc.v (verilog)]&lt;br /&gt;
&lt;br /&gt;
=Pinout=&lt;br /&gt;
&lt;br /&gt;
{{Pinout|NEO-ZMC|512}}&lt;br /&gt;
&lt;br /&gt;
Pins 10, 11, 12 may be M1 higher address bits ?&lt;br /&gt;
&lt;br /&gt;
* SDA0, SDA1, SDA8~15: Z80 address bus&lt;br /&gt;
* M1 A11~M1 A18: [[M1 ROM]] address lines&lt;br /&gt;
* SDRD0: Decoded write signal from {{Chipname|NEO-D0}} (latch on rising edge)&lt;br /&gt;
&lt;br /&gt;
=Operation=&lt;br /&gt;
&lt;br /&gt;
SDA8~SDA15 are used for the bank number (data), SDA0 and SDA1 for selecting the window.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!SDA1&lt;br /&gt;
!SDA0&lt;br /&gt;
!Z80 port&lt;br /&gt;
!Window&lt;br /&gt;
!Address range&lt;br /&gt;
!Size&lt;br /&gt;
!Latch size&lt;br /&gt;
|-&lt;br /&gt;
|0||0||$08||0||$F000~$F7FF||2KiB||8 bits&lt;br /&gt;
|-&lt;br /&gt;
|0||1||$09||1||$E000~$EFFF||4KiB||7 bits&lt;br /&gt;
|-&lt;br /&gt;
|1||0||$0A||2||$C000~$DFFF||8KiB||6 bits&lt;br /&gt;
|-&lt;br /&gt;
|1||1||$0B||3||$8000~$BFFF||16KiB||5 bits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
[[File:Neo-zmz_operation.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
SDRD0 must be high before configuring banks.&lt;br /&gt;
&lt;br /&gt;
To configure a bank to be accessed (e.g. bank 1 in the $8000~$BFFF range):&lt;br /&gt;
* Set SDRD0 low (prepare for new bank configuration, outputs are tri-stated)&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
* Set SDRD0 high (latch bank, ready to convert inputs to proper output signals)&lt;br /&gt;
* Now, when the Z80 reads the &#039;&#039;&#039;$8000~BFFF&#039;&#039;&#039; range, NEO-ZMC will map this to the M1 ROM zone &#039;&#039;&#039;$04000~$07FFF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio system]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=NEO-ZMC&amp;diff=9187</id>
		<title>NEO-ZMC</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=NEO-ZMC&amp;diff=9187"/>
		<updated>2026-02-25T07:46:44Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Link to verilog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ChipInfo&lt;br /&gt;
|picture=crt_zmc.jpg&lt;br /&gt;
|pkg=SOIC24&lt;br /&gt;
|manu=fujitsu&lt;br /&gt;
|date=1991 ?&lt;br /&gt;
|gates=&lt;br /&gt;
|used_on=[[cartridges]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Chipname|Z80}} &#039;&#039;&#039;M&#039;&#039;&#039;emory &#039;&#039;&#039;C&#039;&#039;&#039;ontroller. Handles the [[Z80]] bankswitching in cartridges. To save pins, the Z80&#039;s upper address line are also used as data input. The chip&#039;s write strobe SDRD0 is [[Z80 port map|port]] address decoded inside the system.&lt;br /&gt;
&lt;br /&gt;
Internal logic: [https://github.com/furrtek/Neogeo_MiSTer_old/blob/master/io/zmc.v zmc.v (verilog)]&lt;br /&gt;
&lt;br /&gt;
=Pinout=&lt;br /&gt;
&lt;br /&gt;
{{Pinout|NEO-ZMC|512}}&lt;br /&gt;
&lt;br /&gt;
Pins 10, 11, 12 may be M1 higher address bits ?&lt;br /&gt;
&lt;br /&gt;
* SDA0, SDA1, SDA8~15: Z80 address bus&lt;br /&gt;
* M1 A11~M1 A18: [[M1 ROM]] address lines&lt;br /&gt;
* SDRD0: Decoded write signal from {{Chipname|NEO-D0}} (latch on rising edge)&lt;br /&gt;
&lt;br /&gt;
=Operation=&lt;br /&gt;
&lt;br /&gt;
SDA8~SDA15 are used for the bank number (data), SDA0 and SDA1 for selecting the window.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!SDA1&lt;br /&gt;
!SDA0&lt;br /&gt;
!Z80 port&lt;br /&gt;
!Window&lt;br /&gt;
!Address range&lt;br /&gt;
!Size&lt;br /&gt;
!Latch size&lt;br /&gt;
|-&lt;br /&gt;
|0||0||$08||0||$F000~$F7FF||2KiB||8 bits&lt;br /&gt;
|-&lt;br /&gt;
|0||1||$09||1||$E000~$EFFF||4KiB||7 bits&lt;br /&gt;
|-&lt;br /&gt;
|1||0||$0A||2||$C000~$DFFF||8KiB||6 bits&lt;br /&gt;
|-&lt;br /&gt;
|1||1||$0B||3||$8000~$BFFF||16KiB||5 bits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
[[File:Neo-zmz_operation.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
SDRD0 must be high before configuring banks.&lt;br /&gt;
&lt;br /&gt;
To configure a bank to be accessed (e.g. bank 1 in the $8000~$BFFF range):&lt;br /&gt;
* Set SDRD0 low (prepare for new bank configuration, outputs are tri-stated)&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
* Set SDRD0 high (latch bank, ready to convert inputs to proper output signals)&lt;br /&gt;
* Now, when the Z80 reads the &#039;&#039;&#039;$8000~BFFF&#039;&#039;&#039; range, NEO-ZMC will map this to the M1 ROM zone &#039;&#039;&#039;$04000~$07FFF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio system]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9186</id>
		<title>User talk:Furrtek</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9186"/>
		<updated>2026-02-25T07:43:27Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cyberwillis: Hi==&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 12:59:22 AM)&lt;br /&gt;
&lt;br /&gt;
Hi! Congratulations in taking the charge for the Wiki page !&lt;br /&gt;
&lt;br /&gt;
I would like to understand one change that you made recently. I&#039;ve noticed you have changed an information in NEO-ZMC page, regarding the bank switching activation.&lt;br /&gt;
&lt;br /&gt;
From:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$8103&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $8103 and not just $0103 ?)&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
&lt;br /&gt;
This is a work I had done more or less, 22+ years ago, directly on the hardware and in fact I had published earlier a big table related to all the precise possibilities of the Chip I had found that time. [https://wiki.neogeodev.org/index.php?title=NEO-ZMC&amp;amp;oldid=1715 | NEO-ZMC (Table)].&lt;br /&gt;
&lt;br /&gt;
There is evidence of a different ZMC release? How did you get this $810B activation?&lt;br /&gt;
&lt;br /&gt;
Let me know.&lt;br /&gt;
&lt;br /&gt;
: Thanks ! Hoping nothing didn&#039;t break in the transition. About the edit, it&#039;s true that setting the address bus to $xx03 would work, but that means the z80 is accessing port $03, not $0B, so that wouldn&#039;t toggle SDRD0 and wouldn&#039;t effectively set the bank. NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1. I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ? Do you remember why you had to set SDA15 ? Looking at the logic in ZMC2, it shouldn&#039;t be required.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 03:42, 25 February 2026 (CET)&lt;br /&gt;
---------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 5:45:20 AM)&lt;br /&gt;
&lt;br /&gt;
Hi again, &lt;br /&gt;
Sorry, the only thing i just noticed that is broken is my ZMC schematic I uploaded in 2011, for some reasn has the wrong pinouts, I will upload the correct one soon I find it.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q:&amp;quot;I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: More or less like that but not manually. I sent signals from a device I had built. Before attack the the CMC I had to study the ZMC first.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q1: &amp;quot;NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Q2: &amp;quot;Do you remember why you had to set SDA15?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: There aren&#039;t just 2 bits to be set. In fact are 10 bits to be set. A 4MBit M1 Rom has 32 words to correct access all the 32 banks. The lower bank being $8003 and the higher is $9F03. This is trivial for the NEO-ZMC, not so trivial for NEO-CMC that uses the same logic plus a Checksum key to keep everything sinchronized and being decrypted.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Looking at the logic in ZMC2, it shouldn&#039;t be required&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I didn&#039;t had an AES cartridge in hand to test it out. The ZMC seems to be embedded in ZMC2 in some way, because ZMC behaves the same way in CMC AES and MVS, with different set of pins for Cs and S&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Why $8003 and not just $0003 ?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I believe the Z80 access the M1 as if was a RAM ($8000-$FFFF) opposed to ROM space ($0000-$7FFF), to mirror the bank on internal RAM. The M1 is being accessed all the time after millisseconds the hardware is turned on&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
That&#039;s a port address, not memory. Window 3 only has a 5-bit latch for its bank number, so SDA[15:13] don&#039;t matter.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 7:24:31 AM)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;Yes we are still only talking about ZMC, may be technically be different from the point of view of the Z80 but to me is the same, because I had to access ZMC / CMC to get access to M1 in the same way. This is what I tried to let it clear. If you had confirmed that to access the ZMC / CMC (transparent to NEO-GEO) needs a &#039;&#039;&#039;B&#039;&#039;&#039; but for the ZMC point of view it sees a &#039;&#039;&#039;3&#039;&#039;&#039;, what is the correct pattern to use ? We will talk about components in the point of view of the processor accessing it or the point of view of what the chip need to be setted ? &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It&#039;s true that it&#039;s the NEO-ZMC component page, but since it&#039;s only meant to be used in a specific way (haven&#039;t seen it used outside of Neogeo carts), I find it clearer to mention $0B instead of $03 to match the z80 port that must be used. I think readers who want to mess with the chip signals directly will figure out that SDA[7:2] aren&#039;t connected and only SDA[1:0] matters to the chip. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;What do you mean a different story? Ignoring the part of the Scramble and ignoring the part of S1 and Cs is the same ZMC there that has to be accessed the same way, what part of this is not clear?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ok, good to know the ZMC logic hasn&#039;t evolved in CMC. --[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 08:43, 25 February 2026 (CET)&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9181</id>
		<title>User talk:Furrtek</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9181"/>
		<updated>2026-02-25T05:52:11Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cyberwillis: Hi==&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 12:59:22 AM)&lt;br /&gt;
&lt;br /&gt;
Hi! Congratulations in taking the charge for the Wiki page !&lt;br /&gt;
&lt;br /&gt;
I would like to understand one change that you made recently. I&#039;ve noticed you have changed an information in NEO-ZMC page, regarding the bank switching activation.&lt;br /&gt;
&lt;br /&gt;
From:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$8103&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $8103 and not just $0103 ?)&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
&lt;br /&gt;
This is a work I had done more or less, 22+ years ago, directly on the hardware and in fact I had published earlier a big table related to all the precise possibilities of the Chip I had found that time. [https://wiki.neogeodev.org/index.php?title=NEO-ZMC&amp;amp;oldid=1715 | NEO-ZMC (Table)].&lt;br /&gt;
&lt;br /&gt;
There is evidence of a different ZMC release? How did you get this $810B activation?&lt;br /&gt;
&lt;br /&gt;
Let me know.&lt;br /&gt;
&lt;br /&gt;
: Thanks ! Hoping nothing didn&#039;t break in the transition. About the edit, it&#039;s true that setting the address bus to $xx03 would work, but that means the z80 is accessing port $03, not $0B, so that wouldn&#039;t toggle SDRD0 and wouldn&#039;t effectively set the bank. NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1. I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ? Do you remember why you had to set SDA15 ? Looking at the logic in ZMC2, it shouldn&#039;t be required.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 03:42, 25 February 2026 (CET)&lt;br /&gt;
---------------&lt;br /&gt;
([[User_talk:Cyberwillis|Cyberwillis]]: Wednesday, February 25, 2026 5:45:20 AM)&lt;br /&gt;
&lt;br /&gt;
Hi again, &lt;br /&gt;
Sorry, the only thing i just noticed that is broken is my ZMC schematic I uploaded in 2011, for some reasn has the wrong pinouts, I will upload the correct one soon I find it.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q:&amp;quot;I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: More or less like that but not manually. I sent signals from a device I had built. Before attack the the CMC I had to study the ZMC first.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q1: &amp;quot;NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1.&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Q2: &amp;quot;Do you remember why you had to set SDA15?&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: There aren&#039;t just 2 bits to be set. In fact are 10 bits to be set. A 4MBit M1 Rom has 32 words to correct access all the 32 banks. The lower bank being $8003 and the higher is $9F03. This is trivial for the NEO-ZMC, not so trivial for NEO-CMC that uses the same logic plus a Checksum key to keep everything sinchronized and being decrypted.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We were only talking about NEO-ZMC, and the bits required to select the window are SDA[1:0]. SDA[15:8] is used as data to set the bank #, yes.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Looking at the logic in ZMC2, it shouldn&#039;t be required&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I didn&#039;t had an AES cartridge in hand to test it out. The ZMC seems to be embedded in ZMC2 in some way, because ZMC behaves the same way in CMC AES and MVS, with different set of pins for Cs and S&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yes the ZMC logic is in ZMC2. Logic in CMC is a different story.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Q: Why $8003 and not just $0003 ?&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;A: I believe the Z80 access the M1 as if was a RAM ($8000-$FFFF) opposed to ROM space ($0000-$7FFF), to mirror the bank on internal RAM. The M1 is being accessed all the time after millisseconds the hardware is turned on&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
That&#039;s a port address, not memory. Window 3 only has a 5-bit latch for its bank number, so SDA[15:13] don&#039;t matter.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 06:52, 25 February 2026 (CET)&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=NEO-ZMC2&amp;diff=9173</id>
		<title>NEO-ZMC2</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=NEO-ZMC2&amp;diff=9173"/>
		<updated>2026-02-25T02:58:41Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ChipInfo&lt;br /&gt;
|picture=mvs_zmc2.jpg&lt;br /&gt;
|pkg=QFP80R&lt;br /&gt;
|manu=fujitsu&lt;br /&gt;
|date=1990&lt;br /&gt;
|gates=&lt;br /&gt;
|used_on={{PCB|MV1FZS}} [[Cartridges]]...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Chipname|NEO-ZMC}} and {{Chipname|PRO-CT0}} in one package.&lt;br /&gt;
&lt;br /&gt;
Can address up to 4MiB of [[M1 ROM]].&lt;br /&gt;
&lt;br /&gt;
Found in second revision [[MVS hardware|MVS]] boards (for the PRO-CT0 logic only), and AES cartridges.&lt;br /&gt;
&lt;br /&gt;
=Pinout=&lt;br /&gt;
&lt;br /&gt;
{{Pinout|NEO-ZMC2|640px}}&lt;br /&gt;
&lt;br /&gt;
NEO-ZMC part:&lt;br /&gt;
*SDA0,SDA1,SDA8~SDA15: [[Z80]] address bus &lt;br /&gt;
*MA11~MA21: M ROM address outputs &lt;br /&gt;
&lt;br /&gt;
PRO-CT0 part, inputs:&lt;br /&gt;
*12M: 12MHz clock, outputs next pixel on falling edge.&lt;br /&gt;
*C0~C31: C ROM data bus (2*16 bits). Gives all the pixel data needed for a 8 pixel line.&lt;br /&gt;
*H: When high, reverse bit order of pixels shifted out (used for [[sprites]] horizontal flipping)&lt;br /&gt;
*EVEN: Swap A/B pixels.&lt;br /&gt;
*LOAD: Latch C ROM data on rising edge of 12M.&lt;br /&gt;
Outputs:&lt;br /&gt;
*DOTA: High when pixel A is opaque (color &amp;gt; 0)&lt;br /&gt;
*DOTB: High when pixel B is opaque (color &amp;gt; 0)&lt;br /&gt;
*GAD0~GAD3: Pixel A color index&lt;br /&gt;
*GBD0~GBD3: Pixel B color index&lt;br /&gt;
&lt;br /&gt;
=Signals=&lt;br /&gt;
&lt;br /&gt;
[[File:Spr signals.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=File:Spr_signals.png&amp;diff=9172</id>
		<title>File:Spr signals.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=File:Spr_signals.png&amp;diff=9172"/>
		<updated>2026-02-25T02:57:42Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scope capture of 12M, EVEN and LOAD signals&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=PRO-CT0&amp;diff=9171</id>
		<title>PRO-CT0</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=PRO-CT0&amp;diff=9171"/>
		<updated>2026-02-25T02:54:37Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ChipInfo&lt;br /&gt;
|picture=mvs_pro-ct0.jpg&lt;br /&gt;
|pkg=SDIP64&lt;br /&gt;
|manu=nec&lt;br /&gt;
|date=1990 ?&lt;br /&gt;
|gates=&lt;br /&gt;
|used_on={{PCB|MV4}} [[Cartridges]]...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
PRO-CT0 (also known as SNK-9201 and ALPHA-8921) is an early gate array chip which serializes sprite graphics in AES cartridges and [[MVS hardware|MVS]] boards. It was later replaced by {{Chipname|NEO-ZMC2}} and then {{Chipname|NEO-CMC}}.&lt;br /&gt;
&lt;br /&gt;
It was also used as a challenge-response &amp;quot;security&amp;quot; device in [[Super Sidekicks]] and [[Fatal Fury 2]] cartridges.&lt;br /&gt;
&lt;br /&gt;
ALPHA-8921 is the original chip name, from when [[Alpha Denshi]] were using it on their [[Alpha68k]] system.&lt;br /&gt;
&lt;br /&gt;
=Pinouts=&lt;br /&gt;
{|align=&amp;quot;center&amp;quot;&lt;br /&gt;
!Sprite graphics serializer&lt;br /&gt;
!Security device&lt;br /&gt;
|-&lt;br /&gt;
|[[File:pro-ct0_pinout.png]]&lt;br /&gt;
|[[File:snk-9201_pinout.png]]&lt;br /&gt;
|-&lt;br /&gt;
|Info by [[User:Kyuusaku]]&lt;br /&gt;
|&lt;br /&gt;
*D0~D15: 68k data bus&lt;br /&gt;
*A1~A19: 68k address bus&lt;br /&gt;
*D0out~D7out: output to a LS245 which puts the data on&lt;br /&gt;
the 68k bus when /PORTOEL is low ($200000-$2FFFFF odd byte read).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Internal logic=&lt;br /&gt;
&lt;br /&gt;
[[User:Kyuusaku|Kyuusaku]]&#039;s Verilog definition: [[File:Ct0.zip]]&lt;br /&gt;
&lt;br /&gt;
[[User:furrtek|furrtek]]&#039;s version:&lt;br /&gt;
&lt;br /&gt;
[[File:proct0_ftk.png|640px]]&lt;br /&gt;
&lt;br /&gt;
=Normal use: graphics serializer=&lt;br /&gt;
&lt;br /&gt;
See [[NEO-ZMC2]].&lt;br /&gt;
&lt;br /&gt;
=Derivate use: security device=&lt;br /&gt;
&lt;br /&gt;
[[File:proct0prog.jpg|thumb|PRO-CT0 9042KX023 on an AES cart [[PROG board]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:crt_snk-9201.jpg|right|thumb|SNK-9201 chip found in a [[Super Sidekicks]] MVS cartridge. Picture courtesy of [[http://www.mvs-scans.com MVS-Scans]].]]&lt;br /&gt;
&lt;br /&gt;
As a security device, the chip is only found on [[PROG board#PROG-G2|PROG-G2]] boards for [[Fatal Fury 2]] and [[Super Sidekicks]]. It was SNK&#039;s first attempt at copy-protecting NeoGeo games. The point was to make the game check for the presence of the chip, taking advantage of its relatively hard to guess logic.&lt;br /&gt;
&lt;br /&gt;
The game programs expect the chip to reply with specific data depending on the values written to it. If the values don&#039;t match, then the game assumes it&#039;s a copy and silently sets a flag which triggers deliberate bugs during gameplay (see game pages for details).&lt;br /&gt;
&lt;br /&gt;
The chip is tied to the [[68k]] address and data bus, it reacts to word writes and replies on odd addresses in the [[68k memory map|$200000-$2FFFFF]] address range. Games use several unnecessary complicated bogus addresses in that range to make things look more complicated than they are.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
Address bus mapping:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|A19||A18||A17||A16||A15||A14||A13||A12||A11||A10||A9||A8||A7||A6||A5||A4||A3||A2||/PORTWEL||A1&lt;br /&gt;
|-&lt;br /&gt;
|C31||C29||C27||C25||C30||C28||C26||C24||C23||C21||C19||C17||C22||C20||C18||C16||H||EVEN||12M||LOAD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Data bus mapping:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|D15||D14||D13||D12||D11||D10||D9||D8||D7||D6||D5||D4||D3||D2||D1||D0&lt;br /&gt;
|-&lt;br /&gt;
|C15||C13||C11||C9||C14||C12||C10||C8||C7||C5||C3||C1||C6||C4||C2||C0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Output==&lt;br /&gt;
&lt;br /&gt;
Data bus mapping:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|D7||D6||D5||D4||D3||D2||D1||D0&lt;br /&gt;
|-&lt;br /&gt;
|GBD1||GBD0||GBD3||GBD2||GAD1||GAD0||GAD3||GAD2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9170</id>
		<title>User talk:Furrtek</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Furrtek&amp;diff=9170"/>
		<updated>2026-02-25T02:42:41Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cyberwillis: Hi==&lt;br /&gt;
(Wednesday, February 25, 2026 12:59:22 AM)&lt;br /&gt;
&lt;br /&gt;
Hi! Congratulations in taking the charge for the Wiki page !&lt;br /&gt;
&lt;br /&gt;
I would like to understand one change that you made recently. I&#039;ve noticed you have changed an information in NEO-ZMC page, regarding the bank switching activation.&lt;br /&gt;
&lt;br /&gt;
From:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$8103&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $8103 and not just $0103 ?)&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
&lt;br /&gt;
This is a work I had done more or less, 22+ years ago, directly on the hardware and in fact I had published earlier a big table related to all the precise possibilities of the Chip I had found that time. [https://wiki.neogeodev.org/index.php?title=NEO-ZMC&amp;amp;oldid=1715 | NEO-ZMC (Table)].&lt;br /&gt;
&lt;br /&gt;
There is evidence of a different ZMC release? How did you get this $810B activation?&lt;br /&gt;
&lt;br /&gt;
Let me know.&lt;br /&gt;
&lt;br /&gt;
: Thanks ! Hoping nothing didn&#039;t break in the transition. About the edit, it&#039;s true that setting the address bus to $xx03 would work, but that means the z80 is accessing port $03, not $0B, so that wouldn&#039;t toggle SDRD0 and wouldn&#039;t effectively set the bank. NEO-ZMC does see 3 when writing to port $0B since it&#039;s only connected to SDA0 and SDA1. I&#039;m guessing you were manually setting the NEO-ZMC pins for your tests, not actually using the z80 to write to it ? Do you remember why you had to set SDA15 ? Looking at the logic in ZMC2, it shouldn&#039;t be required.--[[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 03:42, 25 February 2026 (CET)&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Bankswitching&amp;diff=9167</id>
		<title>Bankswitching</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Bankswitching&amp;diff=9167"/>
		<updated>2026-02-25T00:37:39Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Games which need more than 2MiB of [[P ROM]] data use simple bankswitching in the [[68k memory map|PORT memory range]] ($200000~$2FFFFF), which is achieved in hardware by latches on the cartridge&#039;s [[PROG board]]. No games use bankswitching of the ROM range ($000000~$1FFFFF) ?&lt;br /&gt;
&lt;br /&gt;
To switch the ROM bank, a byte needs to be written in this range. Depending on how large the ROM is, one or more bits can be used.&lt;br /&gt;
&lt;br /&gt;
[[File:Pbankswitch.png|thumb|300px]]&lt;br /&gt;
&lt;br /&gt;
For example, the PROGBK1 board uses a 74LS74 dual D-latch to allow a 4MiB P2 ROM to be mapped in 4, 1MiB banks (2 bits, see schematic).&lt;br /&gt;
&lt;br /&gt;
In this case, when a word write or an odd byte write is done in the $200000~$2FFFFF range, /PORTWEL falls, latching D0 and D1 which are output to the P2 ROM&#039;s A20 and A21 lines respectively.&lt;br /&gt;
When the system is reset, both latches are reset to 0, to ensure that the first bank is mapped on startup.&lt;br /&gt;
&lt;br /&gt;
As there is no /PORTOE signal on the cartridge edge (like /ROMOE), both /PORTOEL and /PORTOEU need to be ANDed together to make the /OE signal of P2.&lt;br /&gt;
&lt;br /&gt;
===Example code===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
move.w #3,#$200000    ; Set bank 3, ROM&#039;s $300000~$3FFFFF appears in $200000~$2FFFFF&lt;br /&gt;
move.b #1,#$2B92F1    ; Set bank 1, ROM&#039;s $100000~$1FFFFF appears in $200000~$2FFFFF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartridge systems]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Bankswitching&amp;diff=9166</id>
		<title>Bankswitching</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Bankswitching&amp;diff=9166"/>
		<updated>2026-02-25T00:34:59Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Example code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Games which need more than 2MiB of [[P ROM]] data use simple bankswitching in the [[68k memory map|PORT memory range]] ($200000~$2FFFFF), which is achieved in hardware by latches on the cartridge&#039;s [[PROG board]]. No games use bankswitching of the ROM range ($000000~$1FFFFF) ?&lt;br /&gt;
&lt;br /&gt;
To switch the ROM bank, a byte needs to be written in this range. Depending on how large the ROM is, one or more bits can be used.&lt;br /&gt;
&lt;br /&gt;
[[File:Pbankswitch.png|thumb|300px]]&lt;br /&gt;
&lt;br /&gt;
For example, the PROGBK1 board uses a 74LS74 dual D-latch to allow a 4MiB P2 ROM to be mapped in 4, 1MiB banks (2 bits, see schematic).&lt;br /&gt;
&lt;br /&gt;
In this case, when a byte write is done in the $200000~$2FFFFF range, /PORTWEL falls, latching D0 and D1 which are connected to the P2 ROM&#039;s A20 and A21 lines respectively.&lt;br /&gt;
When the NeoGeo is reset, both latches are reset to 0, to ensure that the first bank is mapped on startup.&lt;br /&gt;
&lt;br /&gt;
As there is no /PORTOE signal on the cartridge edge (like /ROMOE), both /PORTOEL and /PORTOEU need to be ANDed together to make the /OE signal of P2 (if it&#039;s a 16bit ROM).&lt;br /&gt;
&lt;br /&gt;
===Example code===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
move.w #3,#$200000    ; Set bank 3, ROM&#039;s $300000~$3FFFFF appears in $200000~$2FFFFF&lt;br /&gt;
move.b #1,#$2B92F1    ; Set bank 1, ROM&#039;s $100000~$1FFFFF appears in $200000~$2FFFFF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartridge systems]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Bankswitching&amp;diff=9165</id>
		<title>Bankswitching</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Bankswitching&amp;diff=9165"/>
		<updated>2026-02-25T00:34:37Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Example code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Games which need more than 2MiB of [[P ROM]] data use simple bankswitching in the [[68k memory map|PORT memory range]] ($200000~$2FFFFF), which is achieved in hardware by latches on the cartridge&#039;s [[PROG board]]. No games use bankswitching of the ROM range ($000000~$1FFFFF) ?&lt;br /&gt;
&lt;br /&gt;
To switch the ROM bank, a byte needs to be written in this range. Depending on how large the ROM is, one or more bits can be used.&lt;br /&gt;
&lt;br /&gt;
[[File:Pbankswitch.png|thumb|300px]]&lt;br /&gt;
&lt;br /&gt;
For example, the PROGBK1 board uses a 74LS74 dual D-latch to allow a 4MiB P2 ROM to be mapped in 4, 1MiB banks (2 bits, see schematic).&lt;br /&gt;
&lt;br /&gt;
In this case, when a byte write is done in the $200000~$2FFFFF range, /PORTWEL falls, latching D0 and D1 which are connected to the P2 ROM&#039;s A20 and A21 lines respectively.&lt;br /&gt;
When the NeoGeo is reset, both latches are reset to 0, to ensure that the first bank is mapped on startup.&lt;br /&gt;
&lt;br /&gt;
As there is no /PORTOE signal on the cartridge edge (like /ROMOE), both /PORTOEL and /PORTOEU need to be ANDed together to make the /OE signal of P2 (if it&#039;s a 16bit ROM).&lt;br /&gt;
&lt;br /&gt;
===Example code===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
move.w #3,#$200000    ; Set bank 3, ROM&#039;s $300000~$3FFFFF appears in $200000~$2FFFFF&lt;br /&gt;
move.w #1,#$2B92F1    ; Set bank 1, ROM&#039;s $100000~$1FFFFF appears in $200000~$2FFFFF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartridge systems]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Z80_port_map&amp;diff=9164</id>
		<title>Z80 port map</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Z80_port_map&amp;diff=9164"/>
		<updated>2026-02-24T03:11:57Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some infos from [[User:kyuusaku]]&lt;br /&gt;
&lt;br /&gt;
The decode mask for &#039;&#039;&#039;reading&#039;&#039;&#039; ports is always $0C. The one for writes is indicated for each case.&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;Read&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Write&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$00&lt;br /&gt;
|&lt;br /&gt;
*Read [[68k/Z80_communication|command byte]] that was written by {{Chipname|68k}}&lt;br /&gt;
*Acknowledge [[Z80 interrupts|NMI]]&lt;br /&gt;
Active signal: {{Sig|SDZ80R|SDZ80R}}&lt;br /&gt;
|Clear sound code from 68k to $00&lt;br /&gt;
Active signal: {{Sig|SDZ80CLR|SDZ80CLR}}&lt;br /&gt;
&lt;br /&gt;
Decode mask: $0C&lt;br /&gt;
|-&lt;br /&gt;
|$04~$07&lt;br /&gt;
|[[YM2610]] read&lt;br /&gt;
Active signal: {{Sig|2610RD|2610RD}}&lt;br /&gt;
|[[YM2610]] write&lt;br /&gt;
Active signal: {{Sig|2610WR|2610WR}}&lt;br /&gt;
&lt;br /&gt;
Decode mask: $0C&lt;br /&gt;
|-&lt;br /&gt;
|$08&lt;br /&gt;
|Set [[Z80 memory map|$F000~$F7FF]] bank&lt;br /&gt;
&lt;br /&gt;
Active signal: {{Sig|SDRD0|SDRD0}}&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Enable NMIs&lt;br /&gt;
&lt;br /&gt;
Decode mask: $1C&lt;br /&gt;
|-&lt;br /&gt;
|$09&lt;br /&gt;
|Set $E000~$EFFF bank&lt;br /&gt;
&lt;br /&gt;
Active signal: {{Sig|SDRD0|SDRD0}}&lt;br /&gt;
|-&lt;br /&gt;
|$0A&lt;br /&gt;
|Set $C000~$DFFF bank&lt;br /&gt;
&lt;br /&gt;
Active signal: {{Sig|SDRD0|SDRD0}}&lt;br /&gt;
|-&lt;br /&gt;
|$0B&lt;br /&gt;
|Set $8000~$BFFF bank&lt;br /&gt;
&lt;br /&gt;
Active signal: {{Sig|SDRD0|SDRD0}}&lt;br /&gt;
|-&lt;br /&gt;
|$0C&lt;br /&gt;
|See {{Sig|SDRD1|SDRD1}}. Never used by any game ?&lt;br /&gt;
|Write reply byte to 68k&lt;br /&gt;
Active signal: {{Sig|SDZ80W|SDZ80W}}&lt;br /&gt;
&lt;br /&gt;
Decode mask: $0C&lt;br /&gt;
|-&lt;br /&gt;
|$18&lt;br /&gt;
|Same as range $08~$0B&lt;br /&gt;
|Disable NMIs&lt;br /&gt;
&lt;br /&gt;
Decode mask: $1C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the [[M1 ROM|Z80 ROM]] [[Z80 bankswitching|bank selection]] is done by &#039;&#039;&#039;reading&#039;&#039;&#039; ports.&lt;br /&gt;
&lt;br /&gt;
SNK used an obscure feature of the Z80: when accessing ports, the entire address bus is set with A-port or register pair BC, not only the lower 8 bits.&lt;br /&gt;
&lt;br /&gt;
The banks can then be chosen by putting the bank number in register B, the port number ($8 to $B) in register C, and doing IN A,(C), discarding register A.&lt;br /&gt;
&lt;br /&gt;
This also works when putting the bank number in register A and doing IN A,(port).&lt;br /&gt;
&lt;br /&gt;
This is handled by {{Chipname|NEO-ZMC}} in cartridges.&lt;br /&gt;
&lt;br /&gt;
Some [[sound driver]]s use port $C0 (and others ?) in their code. Since only SDA2 and SDA3 are used for port decoding, port $C0 maps to a mirror of port $00. It&#039;s believed to be a remnant of some development tool.&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;br /&gt;
[[Category:Audio system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Z80&amp;diff=9163</id>
		<title>Z80</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Z80&amp;diff=9163"/>
		<updated>2026-02-23T19:04:39Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Interrupts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:cd2_z80.jpg|right|thumb|Z80 in a surface mount package, as found on some MVS and CD boards.]]&lt;br /&gt;
&lt;br /&gt;
The Z80 is a 8-bit little-endian CPU designed by Zilog.&lt;br /&gt;
&lt;br /&gt;
It is used in NeoGeo systems as a sub-CPU to handle sound and music playback. It runs at [[clock|4MHz]] and only has access to the {{Chipname|YM2610}}, the {{Chipname|M1 ROM}} (or [[Z80 file]]s), and its [[Z80 RAM|own RAM]]. It communicates with the {{Chipname|68k}} CPU via a [[68k/Z80 communication|single-byte channel]].&lt;br /&gt;
&lt;br /&gt;
Because it doesn&#039;t share a RAM area with the 68k CPU like on the Sega Genesis, it can&#039;t be used efficiently to offload game computation tasks from the main CPU.&lt;br /&gt;
&lt;br /&gt;
Also see:&lt;br /&gt;
* [[Z80 port map]]&lt;br /&gt;
* [[Z80 bankswitching]]&lt;br /&gt;
&lt;br /&gt;
[[File:aes_z80.jpg|right|thumb|Z80 in DIP package, as found on AES boards.]]&lt;br /&gt;
&lt;br /&gt;
=Interrupts=&lt;br /&gt;
&lt;br /&gt;
* IRQs (address $38) are triggered by the YM2610 timers, if enabled.&lt;br /&gt;
* An NMI (address $66) is triggered when the 68k sends a command byte, if enabled.&lt;br /&gt;
&lt;br /&gt;
=Memory map=&lt;br /&gt;
&lt;br /&gt;
[[File:Z80mmap.png|thumb|Visualization of the Z80&#039;s memory map (proportional areas).]]&lt;br /&gt;
&lt;br /&gt;
==Cartridge systems==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Start&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;End&#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;
|$0000&lt;br /&gt;
|$7FFF&lt;br /&gt;
|32KiB&lt;br /&gt;
|Static main code bank (start of the [[M1 ROM]])&lt;br /&gt;
|-&lt;br /&gt;
|$8000&lt;br /&gt;
|$BFFF&lt;br /&gt;
|16KiB&lt;br /&gt;
|Switching window 3&lt;br /&gt;
|-&lt;br /&gt;
|$C000&lt;br /&gt;
|$DFFF&lt;br /&gt;
|8KiB&lt;br /&gt;
|Switching window 2&lt;br /&gt;
|-&lt;br /&gt;
|$E000&lt;br /&gt;
|$EFFF&lt;br /&gt;
|4KiB&lt;br /&gt;
|Switching window 1&lt;br /&gt;
|-&lt;br /&gt;
|$F000&lt;br /&gt;
|$F7FF&lt;br /&gt;
|2KiB&lt;br /&gt;
|Switching window 0&lt;br /&gt;
|-&lt;br /&gt;
|$F800&lt;br /&gt;
|$FFFF&lt;br /&gt;
|2KiB&lt;br /&gt;
|[[Z80 RAM|Work RAM]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Having a 16-bit address bus, the {{Chipname|Z80}} CPU allows access to 64KiB of memory at most. In NeoGeo [[cartridges]], the {{Chipname|NEO-ZMC}} or {{Chipname|NEO-ZMC2}} chips provide a way to access more memory for [[M1 ROM]]s up to 4MiB. Four different switchable zones (&amp;quot;windows&amp;quot;) are available.&lt;br /&gt;
&lt;br /&gt;
The bank that appear in these windows are configured by &#039;&#039;&#039;reading&#039;&#039;&#039; from 4 of the Z80&#039;s [[Z80 port map|ports]] (see page for explanation).&lt;br /&gt;
&lt;br /&gt;
Bank offsets numbering depend on the window sizes:&lt;br /&gt;
&lt;br /&gt;
* Window 0 counts in 2KiB increments&lt;br /&gt;
* Window 1 in 4KiB&lt;br /&gt;
* Window 2 in 8KiB&lt;br /&gt;
* Window 3 in 16KiB&lt;br /&gt;
&lt;br /&gt;
On cartridge systems, all windows are initialized to 0 (verified on hardware). Many [[sound driver]]s start up by initializing the windows properly like indicated above.&lt;br /&gt;
&lt;br /&gt;
For example, this code simply maps the Z80 $0000~$F7FF address range to M1 ROM $0000~$F7FF linearly, with no gaps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ld    a,$1E&lt;br /&gt;
in    a,($08)    ; Set window 0 at $1E*$800 = $F000&lt;br /&gt;
ld    a,$0E&lt;br /&gt;
in    a,($09)    ; Set window 1 at $E*$1000 = $E000&lt;br /&gt;
ld    a,$06&lt;br /&gt;
in    a,($0A)    ; Set window 2 at $6*$2000 = $C000&lt;br /&gt;
ld    a,$02&lt;br /&gt;
in    a,($0B)    ; Set window 3 at $2*$4000 = $8000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bank selection===&lt;br /&gt;
&lt;br /&gt;
[[The King of Fighters &#039;97]] does this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; 32KiB bank number in A&lt;br /&gt;
rlca&lt;br /&gt;
rlca&lt;br /&gt;
ld    e,a&lt;br /&gt;
ld    d,$00      ; DE = A * 4 (table entry size)&lt;br /&gt;
ld    hl,$289C   ; Table address, see below&lt;br /&gt;
add   hl,de&lt;br /&gt;
ld    a,(hl)&lt;br /&gt;
in    a,($08)    ; Set zone 0&lt;br /&gt;
inc   hl&lt;br /&gt;
ld    a,(hl)&lt;br /&gt;
in    a,($09)    ; Set zone 1&lt;br /&gt;
inc   hl&lt;br /&gt;
ld    a,(hl)&lt;br /&gt;
in    a,($0A)    ; Set zone 2&lt;br /&gt;
inc   hl&lt;br /&gt;
ld    a,(hl)&lt;br /&gt;
in    a,($0B)    ; Set zone 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The table at $289C is used to set the 4 zones like an unique $7800-bytes long one in 32KiB increments, meaning that $800 bytes are wasted at the end of each range (mapped to [[Z80 RAM]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Data at $289C:&lt;br /&gt;
&lt;br /&gt;
1E 0E 06 02  = F000,  E000,  C000,  8000   &amp;quot;Big bank 0&amp;quot;: $8000~ $F7FF   ($F800~ $FFFF  is wasted)&lt;br /&gt;
2E 16 0A 04  = 17000, 16000, 14000, 10000  &amp;quot;Big bank 1&amp;quot;: $10000~$177FF  ($177FF~$17FFF is wasted)&lt;br /&gt;
3E 1E 0E 06  = 1F000, 1E000, 1C000, 18000  &amp;quot;Big bank 2&amp;quot;: $18000~$1F7FF  ($1F7FF~$1FFFF is wasted)&lt;br /&gt;
4E 26 12 08  = 27000, 26000, 24000, 20000  &amp;quot;Big bank 3&amp;quot;: $20000~$277FF  ($277FF~$27FFF is wasted)&lt;br /&gt;
5E 2E 16 0A  = 2F000, 2E000, 2C000, 28000  &amp;quot;Big bank 4&amp;quot;: $28000~$2F7FF  ($2F7FF~$2FFFF is wasted)&lt;br /&gt;
6E 36 1A 0C  = 37000, 36000, 34000, 30000  &amp;quot;Big bank 5&amp;quot;: $30000~$377FF  ($377FF~$37FFF is wasted)&lt;br /&gt;
7E 3E 1E 0E  = 3F000, 3E000, 3C000, 38000  &amp;quot;Big bank 6&amp;quot;: $38000~$3F7FF  ($3F7FF~$3FFFF is wasted)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the game has a 128KiB [[M1 ROM]], but the table is long enough to map up to 256KiB.&lt;br /&gt;
&lt;br /&gt;
==CD systems==&lt;br /&gt;
&lt;br /&gt;
CD systems only have 64KiB of RAM dedicated to the {{Chipname|Z80}}. There&#039;s no bankswitching.&lt;br /&gt;
&lt;br /&gt;
It seems that {{Chipname|NEO-SUD}} allows loading [[Z80 file]]s accross the whole range, and locks $0000~$F7FF as read-only to simulate ROM during execution.&lt;br /&gt;
&lt;br /&gt;
=Pinout=&lt;br /&gt;
&lt;br /&gt;
[[File:Z80_pinout.png|640px]]&lt;br /&gt;
&lt;br /&gt;
=Datasheet=&lt;br /&gt;
&lt;br /&gt;
Z8400 datasheet: [[http://www.datasheetcatalog.org/datasheets/restul/285906_DS.pdf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Chips]]&lt;br /&gt;
[[Category:Audio system]]&lt;br /&gt;
[[Category:Base system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=NEO-ZMC&amp;diff=9162</id>
		<title>NEO-ZMC</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=NEO-ZMC&amp;diff=9162"/>
		<updated>2026-02-23T19:02:48Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ChipInfo&lt;br /&gt;
|picture=crt_zmc.jpg&lt;br /&gt;
|pkg=SOIC24&lt;br /&gt;
|manu=fujitsu&lt;br /&gt;
|date=1991 ?&lt;br /&gt;
|gates=&lt;br /&gt;
|used_on=[[cartridges]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Chipname|Z80}} &#039;&#039;&#039;M&#039;&#039;&#039;emory &#039;&#039;&#039;C&#039;&#039;&#039;ontroller. Handles the [[Z80]] bankswitching in cartridges. To save pins, the Z80&#039;s upper address line are also used as data input. The chip&#039;s write strobe SDRD0 is [[Z80 port map|port]] address decoded inside the system.&lt;br /&gt;
&lt;br /&gt;
=Pinout=&lt;br /&gt;
&lt;br /&gt;
{{Pinout|NEO-ZMC|512}}&lt;br /&gt;
&lt;br /&gt;
Pins 10, 11, 12 may be M1 higher address bits ?&lt;br /&gt;
&lt;br /&gt;
* SDA0, SDA1, SDA8~15: Z80 address bus&lt;br /&gt;
* M1 A11~M1 A18: [[M1 ROM]] address lines&lt;br /&gt;
* SDRD0: Decoded write signal from {{Chipname|NEO-D0}} (latch on rising edge)&lt;br /&gt;
&lt;br /&gt;
=Operation=&lt;br /&gt;
&lt;br /&gt;
SDA8~SDA15 are used for the bank number (data), SDA0 and SDA1 for selecting the window.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!SDA1&lt;br /&gt;
!SDA0&lt;br /&gt;
!Z80 port&lt;br /&gt;
!Window&lt;br /&gt;
!Address range&lt;br /&gt;
!Size&lt;br /&gt;
!Latch size&lt;br /&gt;
|-&lt;br /&gt;
|0||0||$08||0||$F000~$F7FF||2KiB||8 bits&lt;br /&gt;
|-&lt;br /&gt;
|0||1||$09||1||$E000~$EFFF||4KiB||7 bits&lt;br /&gt;
|-&lt;br /&gt;
|1||0||$0A||2||$C000~$DFFF||8KiB||6 bits&lt;br /&gt;
|-&lt;br /&gt;
|1||1||$0B||3||$8000~$BFFF||16KiB||5 bits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
[[File:Neo-zmz_operation.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
SDRD0 must be high before configuring banks.&lt;br /&gt;
&lt;br /&gt;
To configure a bank to be accessed (e.g. bank 1 in the $8000~$BFFF range):&lt;br /&gt;
* Set SDRD0 low (prepare for new bank configuration, outputs are tri-stated)&lt;br /&gt;
* Set SDA0~15 = &#039;&#039;&#039;$810B&#039;&#039;&#039;, select 16KiB bank 1 in window 3 (Why $810B and not just $010B ?)&lt;br /&gt;
* Set SDRD0 high (latch bank, ready to convert inputs to proper output signals)&lt;br /&gt;
* Now, when the Z80 reads the &#039;&#039;&#039;$8000~BFFF&#039;&#039;&#039; range, NEO-ZMC will map this to the M1 ROM zone &#039;&#039;&#039;$04000~$07FFF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio system]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Z80_port_map&amp;diff=9161</id>
		<title>Z80 port map</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Z80_port_map&amp;diff=9161"/>
		<updated>2026-02-23T18:57:18Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Decoded signals&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some infos from [[User:kyuusaku]]&lt;br /&gt;
&lt;br /&gt;
The decode mask for &#039;&#039;&#039;reading&#039;&#039;&#039; ports is always $0C. The one for writes is indicated for each case.&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;Read&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Write&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$00&lt;br /&gt;
|&lt;br /&gt;
*Read [[68k/Z80_communication|command byte]] that was written by {{Chipname|68k}}&lt;br /&gt;
*Acknowledge [[Z80 interrupts|NMI]]&lt;br /&gt;
Active signal: {{Sig|SDZ80R|SDZ80R}}&lt;br /&gt;
|Clear sound code from 68k to $00&lt;br /&gt;
Active signal: {{Sig|SDZ80CLR|SDZ80CLR}}&lt;br /&gt;
&lt;br /&gt;
Decode mask: $0C&lt;br /&gt;
|-&lt;br /&gt;
|$04~$07&lt;br /&gt;
|[[YM2610]] read&lt;br /&gt;
Active signal: {{Sig|2610RD|2610RD}}&lt;br /&gt;
|[[YM2610]] write&lt;br /&gt;
Active signal: {{Sig|2610WR|2610WR}}&lt;br /&gt;
&lt;br /&gt;
Decode mask: $0C&lt;br /&gt;
|-&lt;br /&gt;
|$08&lt;br /&gt;
|Set [[Z80 memory map|$F000~$F7FF]] bank&lt;br /&gt;
&lt;br /&gt;
Active signal: {{Sig|SDRD0|SDRD0}}&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Enable NMIs&lt;br /&gt;
&lt;br /&gt;
Decode mask: $1C&lt;br /&gt;
|-&lt;br /&gt;
|$09&lt;br /&gt;
|Set $E000~$EFFF bank&lt;br /&gt;
&lt;br /&gt;
Active signal: {{Sig|SDRD0|SDRD0}}&lt;br /&gt;
|-&lt;br /&gt;
|$0A&lt;br /&gt;
|Set $C000~$DFFF bank&lt;br /&gt;
&lt;br /&gt;
Active signal: {{Sig|SDRD0|SDRD0}}&lt;br /&gt;
|-&lt;br /&gt;
|$0B&lt;br /&gt;
|Set $8000~$BFFF bank&lt;br /&gt;
&lt;br /&gt;
Active signal: {{Sig|SDRD0|SDRD0}}&lt;br /&gt;
|-&lt;br /&gt;
|$0C&lt;br /&gt;
|See {{Sig|SDRD1|SDRD1}}. Never used by any game ?&lt;br /&gt;
|Write reply byte to 68k&lt;br /&gt;
Active signal: {{Sig|SDZ80W|SDZ80W}}&lt;br /&gt;
&lt;br /&gt;
Decode mask: $0C&lt;br /&gt;
|-&lt;br /&gt;
|$18&lt;br /&gt;
|Same as range $08~$0B&lt;br /&gt;
|Disable NMIs&lt;br /&gt;
&lt;br /&gt;
Decode mask: $1C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the [[M1 ROM|Z80 ROM]] [[Z80 bankswitching|bank selection]] is done by &#039;&#039;&#039;reading&#039;&#039;&#039; ports.&lt;br /&gt;
&lt;br /&gt;
SNK used an obscure feature of the Z80: when accessing ports, the entire address bus is set with the register pair BC, not only the lower 8 bits with register C.&lt;br /&gt;
&lt;br /&gt;
The banks can then be chosen by putting the bank number in register B, the port number ($0 to $B) in register C, and doing IN A,(C), discarding register A.&lt;br /&gt;
&lt;br /&gt;
This is handled by {{Chipname|NEO-ZMC}} in cartridges.&lt;br /&gt;
&lt;br /&gt;
Some [[sound driver]]s use port $C0 (and others ?) in their code. Since only SDA2 and SDA3 are used for port decoding, port $C0 maps to a mirror of port $00. It&#039;s believed to be a remnant of some development tool.&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;br /&gt;
[[Category:Audio system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=M1_ROM&amp;diff=9160</id>
		<title>M1 ROM</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=M1_ROM&amp;diff=9160"/>
		<updated>2026-02-23T18:47:46Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:m_rom.jpg|thumb|right|128KiB M1 ROM]]&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;M&#039;&#039;&#039;usic&amp;quot; ? Single 8-bit ROM containing the [[z80]] program and data in [[cartridges]]. Often bankswitched by {{Chipname|NEO-ZMC}} or {{Chipname|NEO-ZMC2}} if larger than 64KiB.&lt;br /&gt;
&lt;br /&gt;
This ROM does not contain sound samples, these are stored in the [[V ROM]]s.&lt;br /&gt;
&lt;br /&gt;
[[Category:Chips]]&lt;br /&gt;
[[Category:Cartridge systems]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Z80_port_map&amp;diff=9159</id>
		<title>Z80 port map</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Z80_port_map&amp;diff=9159"/>
		<updated>2026-02-19T18:18:53Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some infos from [[User:kyuusaku]]&lt;br /&gt;
&lt;br /&gt;
The decode mask for &#039;&#039;&#039;reading&#039;&#039;&#039; ports is always $0C. The one for writes is indicated for each case.&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;Read&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Write&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Memory_mapped_registers#Address_decode_masks|Decode mask]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$00&lt;br /&gt;
|&lt;br /&gt;
*Read sound code from {{Chipname|68k}}&lt;br /&gt;
*Acknowledge [[Z80 interrupts|NMI]]&lt;br /&gt;
|Clear sound code from 68k to $00&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|$0C&lt;br /&gt;
|-&lt;br /&gt;
|$04&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[YM2610]] I/O&lt;br /&gt;
|-&lt;br /&gt;
|$08&lt;br /&gt;
|Set [[Z80 memory map|$F000~$F7FF]] bank&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|Enable NMIs&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|$1C&lt;br /&gt;
|-&lt;br /&gt;
|$09&lt;br /&gt;
|Set $E000~$EFFF bank&lt;br /&gt;
|-&lt;br /&gt;
|$0A&lt;br /&gt;
|Set $C000~$DFFF bank&lt;br /&gt;
|-&lt;br /&gt;
|$0B&lt;br /&gt;
|Set $8000~$BFFF bank&lt;br /&gt;
|-&lt;br /&gt;
|$0C&lt;br /&gt;
|See {{Sig|SDRD1|SDRD1}}&lt;br /&gt;
|[[68k/Z80_communication|Reply]] to 68k&lt;br /&gt;
|$0C&lt;br /&gt;
|-&lt;br /&gt;
|$18&lt;br /&gt;
|See address $08&lt;br /&gt;
|Disable NMIs&lt;br /&gt;
|$1C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the [[M1 ROM|Z80 ROM]] [[Z80 bankswitching|bank selection]] is done by &#039;&#039;&#039;reading&#039;&#039;&#039; ports.&lt;br /&gt;
&lt;br /&gt;
SNK used an obscure feature of the Z80: when accessing ports, the entire address bus is set with the register pair BC, not only the lower 8 bits with register C.&lt;br /&gt;
&lt;br /&gt;
The banks can then be chosen by putting the bank number in B, the port number in C, and doing IN A,(C), discarding A.&lt;br /&gt;
&lt;br /&gt;
This is handled by {{Chipname|NEO-ZMC}} in cartridges.&lt;br /&gt;
&lt;br /&gt;
Some [[sound driver]]s use port $C0 (and others ?) in their code. Since only SDA2 and SDA3 are used for port decoding, port $C0 maps to a mirror of port $00. It&#039;s believed to be a remnant of some development tool.&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;br /&gt;
[[Category:Audio system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User_talk:Amerika&amp;diff=9158</id>
		<title>User talk:Amerika</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User_talk:Amerika&amp;diff=9158"/>
		<updated>2026-02-19T18:06:48Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to &#039;&#039;NeoGeo Development Wiki&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Furrtek|Furrtek]] ([[User talk:Furrtek|talk]]) 19:06, 19 February 2026 (CET)&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=User:Furrtek&amp;diff=9157</id>
		<title>User:Furrtek</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=User:Furrtek&amp;diff=9157"/>
		<updated>2026-02-19T17:58:21Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello :)&lt;br /&gt;
&lt;br /&gt;
I couldn&#039;t have a NeoGeo when I was a kid so I took my revenge.&lt;br /&gt;
&lt;br /&gt;
[[File:ftksnk.jpg]]&lt;br /&gt;
&lt;br /&gt;
Contact: @furrtek on Telegram and Discord, furrtek@gmail.com&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Main_Page&amp;diff=9156</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Main_Page&amp;diff=9156"/>
		<updated>2026-02-19T17:57:03Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Todo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;newhome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;home-header&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div style=&amp;quot;min-height:110px;&amp;quot;&amp;gt;&lt;br /&gt;
	  [[File:Neo-Geo-AES-Console-Set.png|left|x100px|link=]]&lt;br /&gt;
	  &amp;lt;h2 class=&amp;quot;title&amp;quot;&amp;gt;The NeoGeo Development Wiki&amp;lt;/h2&amp;gt;&lt;br /&gt;
	  &amp;lt;p class=&amp;quot;headline&amp;quot;&amp;gt;This wiki is about every technical aspects of the SNK NeoGeo hardware and software (AES, MVS, CD and CDZ).&amp;lt;br /&amp;gt;Our aim is to provide the most detailed, accurate and up to date information for preservation, homebrew development and repairs.&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;home-left&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;home-cat&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-base&amp;quot;&amp;gt;[[:Category:Base system|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Base system&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;What&#039;s common to every NeoGeo system: main architecture, data formats...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Base system&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Base system}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-video&amp;quot;&amp;gt;[[:Category:Video system|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Video system&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;How graphics are handled and displayed, from bitplanes and colors to the video output.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Video system&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Video system}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-audio&amp;quot;&amp;gt;[[:Category:Audio system|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Audio system&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Everything related to music and sound effects: The Z80 subsystem, synthesized and sampled sound, CDDA playback...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Audio system&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Audio system}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-repair&amp;quot;&amp;gt;[[:Category:Repairs|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Repairs&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Troubleshooting dead or glitchy MVS boards, CD laser assemblies, cartridges...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Repairs&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Repairs}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-cart&amp;quot;&amp;gt;[[:Category:Cartridge systems|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Cart systems&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Particularities of the AES and MVS systems: ROM types, memory cards, cab I/O, data security... Also [[:Category:Cartridge boards|cartridge boards]] information.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Cartridge systems&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Cartridge systems}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-cd&amp;quot;&amp;gt;[[:Category:CD systems|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;CD systems&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;NeoGeo CD and CDZ specificities: Differences and limitations, new memory functions, CDDA...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=CD systems&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:CD systems}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-code&amp;quot;&amp;gt;[[:Category:Code|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Software&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Code snippets, register definitions, guides on how to display stuff, use the system ROM, play music and sounds, read user input...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Code&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Code}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-chips&amp;quot;&amp;gt;[[:Category:Chips|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Electronics&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;What makes everything work (or not). Schematics, chip pinouts and functions, troubleshooting hardware issues...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Chips&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Chips}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-games&amp;quot;&amp;gt;[[:Category:Games|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Games&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Remarquable games for some of their technical aspects: special effects, unusual hardware use, hidden features...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Games&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Games}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;home-right&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
==[[Special:RecentChanges|Recent changes]] (minor edits hidden)==&lt;br /&gt;
{{Special:Recentchanges/4,hideminor}}&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
==About this wiki==&lt;br /&gt;
    &amp;lt;ul style=&amp;quot;list-style:outside none none;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;The wiki has {{NUMBEROFARTICLES}} pages thanks to our [[Special:Userlist|contributors]]&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Hosting provided by [[User:Furrtek|Furrtek]], previously by [[User:ElBarto|ElBarto]] for 15 years !&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Don&#039;t know where to start ? Try [[How_to_start|here]]&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Can&#039;t find what you&#039;re looking for ? Try our [[links]]&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&#039;&#039;&#039;Want to help ? Just [[Join_wiki|register]] &#039;&#039;&#039; !&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&#039;&#039;&#039;How to edit, guidelines, available templates, suggestions: [[The wiki]]&#039;&#039;&#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
* See [[Special:WantedPages|wanted pages]], [[Special:AncientPages|old pages]], [[Special:ShortPages|short pages]], and [[Todo/Mysteries]].&lt;br /&gt;
* Make subcategories, move/merge &amp;quot;BIOS calls&amp;quot;&lt;br /&gt;
* Better troubleshooting tips&lt;br /&gt;
* Make a downloadable offline capture every few months ?&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Main_Page&amp;diff=9155</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Main_Page&amp;diff=9155"/>
		<updated>2026-02-19T17:56:09Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Who to complain to, removed IRC channel info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;newhome&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;home-header&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div style=&amp;quot;min-height:110px;&amp;quot;&amp;gt;&lt;br /&gt;
	  [[File:Neo-Geo-AES-Console-Set.png|left|x100px|link=]]&lt;br /&gt;
	  &amp;lt;h2 class=&amp;quot;title&amp;quot;&amp;gt;The NeoGeo Development Wiki&amp;lt;/h2&amp;gt;&lt;br /&gt;
	  &amp;lt;p class=&amp;quot;headline&amp;quot;&amp;gt;This wiki is about every technical aspects of the SNK NeoGeo hardware and software (AES, MVS, CD and CDZ).&amp;lt;br /&amp;gt;Our aim is to provide the most detailed, accurate and up to date information for preservation, homebrew development and repairs.&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;home-left&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;home-cat&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-base&amp;quot;&amp;gt;[[:Category:Base system|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Base system&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;What&#039;s common to every NeoGeo system: main architecture, data formats...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Base system&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Base system}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-video&amp;quot;&amp;gt;[[:Category:Video system|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Video system&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;How graphics are handled and displayed, from bitplanes and colors to the video output.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Video system&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Video system}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-audio&amp;quot;&amp;gt;[[:Category:Audio system|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Audio system&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Everything related to music and sound effects: The Z80 subsystem, synthesized and sampled sound, CDDA playback...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Audio system&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Audio system}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-repair&amp;quot;&amp;gt;[[:Category:Repairs|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Repairs&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Troubleshooting dead or glitchy MVS boards, CD laser assemblies, cartridges...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Repairs&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Repairs}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-cart&amp;quot;&amp;gt;[[:Category:Cartridge systems|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Cart systems&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Particularities of the AES and MVS systems: ROM types, memory cards, cab I/O, data security... Also [[:Category:Cartridge boards|cartridge boards]] information.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Cartridge systems&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Cartridge systems}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-cd&amp;quot;&amp;gt;[[:Category:CD systems|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;CD systems&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;NeoGeo CD and CDZ specificities: Differences and limitations, new memory functions, CDDA...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=CD systems&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:CD systems}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-code&amp;quot;&amp;gt;[[:Category:Code|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Software&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Code snippets, register definitions, guides on how to display stuff, use the system ROM, play music and sounds, read user input...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Code&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Code}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-chips&amp;quot;&amp;gt;[[:Category:Chips|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Electronics&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;What makes everything work (or not). Schematics, chip pinouts and functions, troubleshooting hardware issues...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Chips&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Chips}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;head cat-games&amp;quot;&amp;gt;[[:Category:Games|&amp;lt;span class=&amp;quot;cattitle&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Games&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Remarquable games for some of their technical aspects: special effects, unusual hardware use, hidden features...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div&amp;gt;&#039;&#039;&#039;Last edits&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;forum&amp;gt;&lt;br /&gt;
                category=Games&lt;br /&gt;
                count=3&lt;br /&gt;
            &amp;lt;/forum&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;{{PAGESINCAT:Games}} pages&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;home-right&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
==[[Special:RecentChanges|Recent changes]] (minor edits hidden)==&lt;br /&gt;
{{Special:Recentchanges/4,hideminor}}&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
==About this wiki==&lt;br /&gt;
    &amp;lt;ul style=&amp;quot;list-style:outside none none;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;The wiki has {{NUMBEROFARTICLES}} pages thanks to our [[Special:Userlist|contributors]]&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Hosting provided by [[User:Furrtek|Furrtek]], previously by [[User:ElBarto|ElBarto]] for 15 years !&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Don&#039;t know where to start ? Try [[How_to_start|here]]&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Can&#039;t find what you&#039;re looking for ? Try our [[links]]&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&#039;&#039;&#039;Want to help ? Just [[Join_wiki|register]] &#039;&#039;&#039; !&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&#039;&#039;&#039;How to edit, guidelines, available templates, suggestions: [[The wiki]]&#039;&#039;&#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;home-block&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
* See [[Special:WantedPages|wanted pages]], [[Special:AncientPages|old pages]], [[Special:ShortPages|short pages]], and [[Todo/Mysteries]].&lt;br /&gt;
* Publish asm highlighter for ConTEXT&lt;br /&gt;
* Make subcategories, move/merge &amp;quot;BIOS calls&amp;quot;&lt;br /&gt;
* More schematics, chip details/pinouts&lt;br /&gt;
* Troubleshooting tips&lt;br /&gt;
* Make a downloadable offline capture every few months ?&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=68k_program_header&amp;diff=9154</id>
		<title>68k program header</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=68k_program_header&amp;diff=9154"/>
		<updated>2026-02-07T23:38:08Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ASM ROM header templates.&lt;br /&gt;
&lt;br /&gt;
==For cartridge systems==&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;Size&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$100&lt;br /&gt;
|7 bytes&lt;br /&gt;
|&amp;quot;NEO-GEO&amp;quot; string (first cartridge recognition code).&lt;br /&gt;
|-&lt;br /&gt;
|$107&lt;br /&gt;
|byte&lt;br /&gt;
|System version (0 for cartridge systems, 1 or 2 for adapted cart games on Neo CD ?).&lt;br /&gt;
|-&lt;br /&gt;
|$108&lt;br /&gt;
|word&lt;br /&gt;
|[[NGH number]] in BCD, 0000 prohibited.&lt;br /&gt;
|-&lt;br /&gt;
|$10A&lt;br /&gt;
|longword&lt;br /&gt;
|Total [[P ROM]] data size in bytes.&lt;br /&gt;
|-&lt;br /&gt;
|$10E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to the backup RAM data block in [[68k user RAM]]. The first 2 bytes are usually the [[debug DIPs]]. Doesn&#039;t need to be aligned.&lt;br /&gt;
|-&lt;br /&gt;
|$112&lt;br /&gt;
|word&lt;br /&gt;
|Size of the backup RAM data block in bytes. Must not exceed 4096.&lt;br /&gt;
|-&lt;br /&gt;
|$114&lt;br /&gt;
|byte&lt;br /&gt;
|[[Eyecatcher]] animation flag. 0=Done by system ROM, 1=Done by game, 2=Nothing.&lt;br /&gt;
|-&lt;br /&gt;
|$115&lt;br /&gt;
|byte&lt;br /&gt;
|Sprite bank number (upper 8 bits of tile number) for the eye-catcher logo, if done by system ROM.&lt;br /&gt;
|-&lt;br /&gt;
|$116&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Japanese [[Software_DIPs|software DIPs settings layout]].&lt;br /&gt;
|-&lt;br /&gt;
|$11A&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to US settings software DIPs settings layout.&lt;br /&gt;
|-&lt;br /&gt;
|$11E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Euro settings software DIPs settings layout.&lt;br /&gt;
|-&lt;br /&gt;
|$122&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[USER subroutine]] (code start).&lt;br /&gt;
|-&lt;br /&gt;
|$128&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[PLAYER_START subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$12E&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[DEMO_END subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$134&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[COIN_SOUND subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$182&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to [[security code]] (second cartridge recognition code). Must be word aligned.&lt;br /&gt;
|-&lt;br /&gt;
|$186&lt;br /&gt;
|longword&lt;br /&gt;
|Unknown (seems only set to 0x00000000 on boards containing Spanish software DIPs).&lt;br /&gt;
|-&lt;br /&gt;
|$18A&lt;br /&gt;
|longword&lt;br /&gt;
|Unknown (seems only set to 0x00000001 on boards containing Spanish software DIPs).&lt;br /&gt;
|-&lt;br /&gt;
|$18E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Spanish settings software DIPs settings layout (not all games use this).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Minimal header (from [[User:Smkdan|Smkdan&#039;s]] sources)===&lt;br /&gt;
&lt;br /&gt;
No need for a complete [[68k vector table]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
	org $0000&lt;br /&gt;
	dc.l $10F300&lt;br /&gt;
&lt;br /&gt;
	org $0004&lt;br /&gt;
	dc.l $C00402&lt;br /&gt;
&lt;br /&gt;
	org $0064&lt;br /&gt;
	dc.l VBLANK	;IRQ handler&lt;br /&gt;
&lt;br /&gt;
	org $0100&lt;br /&gt;
	dc.b &amp;quot;NEO-GEO&amp;quot;,$00&lt;br /&gt;
&lt;br /&gt;
	org $0108&lt;br /&gt;
	dc.w $1234	;NGH&lt;br /&gt;
&lt;br /&gt;
	org $0122&lt;br /&gt;
	jmp USER	;entry&lt;br /&gt;
&lt;br /&gt;
	org $0114&lt;br /&gt;
	dc.w $0100	;logo flag, don&#039;t show it just go straight to the entry point&lt;br /&gt;
&lt;br /&gt;
	org $0182&lt;br /&gt;
	dc.l Code	;code pointer&lt;br /&gt;
Code:&lt;br /&gt;
	dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D&lt;br /&gt;
	dc.l $0A0813C0,$00300001,$32100C01,$00FF671A&lt;br /&gt;
	dc.l $30280002,$B02D0ACE,$66103028,$0004B02D&lt;br /&gt;
	dc.l $0ACF6606,$B22D0AD0,$67085088,$51CFFFD4&lt;br /&gt;
	dc.l $36074E75,$206D0A04,$3E2D0A08,$3210E049&lt;br /&gt;
	dc.l $0C0100FF,$671A3010,$B02D0ACE,$66123028&lt;br /&gt;
	dc.l $0002E048,$B02D0ACF,$6606B22D,$0AD06708&lt;br /&gt;
	dc.l $588851CF,$FFD83607&lt;br /&gt;
	dc.w $4e75&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Full header (from some unknown example code)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
    org $0100&lt;br /&gt;
    dc.b &amp;quot;NEO-GEO&amp;quot;,$00&lt;br /&gt;
&lt;br /&gt;
    dc.w $1234        ;NGH&lt;br /&gt;
    dc.l $00080000    ;P ROM size&lt;br /&gt;
    dc.l $00100000    ;debug DIPs pointer&lt;br /&gt;
    dc.w $01          ;size of DIP data&lt;br /&gt;
    dc.b $00          ;let the BIOS show the logo&lt;br /&gt;
    dc.b $1B          ;first tile of the logo is $1B00&lt;br /&gt;
    dc.l JPConfig     ;Japanese config menu pointer&lt;br /&gt;
    dc.l USConfig     ;US config menu pointer&lt;br /&gt;
    dc.l EUConfig     ;European config menu pointer&lt;br /&gt;
&lt;br /&gt;
    jmp        USER&lt;br /&gt;
    jmp        PLAYER_START&lt;br /&gt;
    jmp        DEMO_END&lt;br /&gt;
    jmp        COIN_SOUND&lt;br /&gt;
&lt;br /&gt;
    org $0182&lt;br /&gt;
    dc.l Code         ;code pointer&lt;br /&gt;
Code:&lt;br /&gt;
    dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D&lt;br /&gt;
    dc.l $0A0813C0,$00300001,$32100C01,$00FF671A&lt;br /&gt;
    dc.l $30280002,$B02D0ACE,$66103028,$0004B02D&lt;br /&gt;
    dc.l $0ACF6606,$B22D0AD0,$67085088,$51CFFFD4&lt;br /&gt;
    dc.l $36074E75,$206D0A04,$3E2D0A08,$3210E049&lt;br /&gt;
    dc.l $0C0100FF,$671A3010,$B02D0ACE,$66123028&lt;br /&gt;
    dc.l $0002E048,$B02D0ACF,$6606B22D,$0AD06708&lt;br /&gt;
    dc.l $588851CF,$FFD83607&lt;br /&gt;
    dc.w $4e75&lt;br /&gt;
&lt;br /&gt;
    ; Configuration menu layouts (soft DIPs)&lt;br /&gt;
 JPConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&lt;br /&gt;
 USConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&lt;br /&gt;
 EUConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==For CD systems==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
    org     $100&lt;br /&gt;
    dc.b    &amp;quot;NEO-GEO&amp;quot;,$02           ;CDDA flag&lt;br /&gt;
    dc.w    $1234                   ;NGH&lt;br /&gt;
    dc.l    $00080000               ;P ROM size&lt;br /&gt;
    dc.l    $00100000               ;debug DIPs pointer&lt;br /&gt;
    dc.w    $01                     ;size of DIP data&lt;br /&gt;
    dc.b    $00                     ;let the BIOS show the logo&lt;br /&gt;
    dc.b    $1B                     ;first tile of the logo is $1B00&lt;br /&gt;
    dc.l    JPConfig                ;Japanese config menu pointer&lt;br /&gt;
    dc.l    USConfig                ;US config menu pointer&lt;br /&gt;
    dc.l    EUConfig                ;European config menu pointer&lt;br /&gt;
&lt;br /&gt;
    org     $122&lt;br /&gt;
    jmp     Start&lt;br /&gt;
&lt;br /&gt;
    org     $13A&lt;br /&gt;
    dc.w    $0000                   ;Z80 RAM address for CDDA commands&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;br /&gt;
[[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=68k_program_header&amp;diff=9153</id>
		<title>68k program header</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=68k_program_header&amp;diff=9153"/>
		<updated>2026-02-07T22:00:19Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* For cartridge systems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ASM ROM header templates.&lt;br /&gt;
&lt;br /&gt;
==For cartridge systems==&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;Size&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$100&lt;br /&gt;
|7 bytes&lt;br /&gt;
|&amp;quot;NEO-GEO&amp;quot; string (first cartridge recognition code).&lt;br /&gt;
|-&lt;br /&gt;
|$107&lt;br /&gt;
|byte&lt;br /&gt;
|System version (0 for cartridge systems, 1 or 2 for adapted cart games on Neo CD ?).&lt;br /&gt;
|-&lt;br /&gt;
|$108&lt;br /&gt;
|word&lt;br /&gt;
|[[NGH number]] in BCD, 0000 prohibited.&lt;br /&gt;
|-&lt;br /&gt;
|$10A&lt;br /&gt;
|longword&lt;br /&gt;
|Total [[P ROM]] data size in bytes.&lt;br /&gt;
|-&lt;br /&gt;
|$10E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to the backup RAM data block in [[68k user RAM]]. The first 2 bytes are usually the [[debug DIPs]].&lt;br /&gt;
|-&lt;br /&gt;
|$112&lt;br /&gt;
|word&lt;br /&gt;
|Size of the backup RAM data block.&lt;br /&gt;
|-&lt;br /&gt;
|$114&lt;br /&gt;
|byte&lt;br /&gt;
|[[Eyecatcher]] animation flag. 0=Done by system ROM, 1=Done by game, 2=Nothing.&lt;br /&gt;
|-&lt;br /&gt;
|$115&lt;br /&gt;
|byte&lt;br /&gt;
|Sprite bank number (upper 8 bits of tile number) for the eye-catcher logo, if done by system ROM.&lt;br /&gt;
|-&lt;br /&gt;
|$116&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Japanese [[Software_DIPs|software DIPs settings layout]].&lt;br /&gt;
|-&lt;br /&gt;
|$11A&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to US settings software DIPs settings layout.&lt;br /&gt;
|-&lt;br /&gt;
|$11E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Euro settings software DIPs settings layout.&lt;br /&gt;
|-&lt;br /&gt;
|$122&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[USER subroutine]] (code start).&lt;br /&gt;
|-&lt;br /&gt;
|$128&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[PLAYER_START subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$12E&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[DEMO_END subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$134&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[COIN_SOUND subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$182&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to [[security code]] (second cartridge recognition code). Must be word aligned.&lt;br /&gt;
|-&lt;br /&gt;
|$186&lt;br /&gt;
|longword&lt;br /&gt;
|Unknown (seems only set to 0x00000000 on boards containing Spanish software DIPs).&lt;br /&gt;
|-&lt;br /&gt;
|$18A&lt;br /&gt;
|longword&lt;br /&gt;
|Unknown (seems only set to 0x00000001 on boards containing Spanish software DIPs).&lt;br /&gt;
|-&lt;br /&gt;
|$18E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Spanish settings software DIPs settings layout (not all games use this).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Minimal header (from [[User:Smkdan|Smkdan&#039;s]] sources)===&lt;br /&gt;
&lt;br /&gt;
No need for a complete [[68k vector table]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
	org $0000&lt;br /&gt;
	dc.l $10F300&lt;br /&gt;
&lt;br /&gt;
	org $0004&lt;br /&gt;
	dc.l $C00402&lt;br /&gt;
&lt;br /&gt;
	org $0064&lt;br /&gt;
	dc.l VBLANK	;IRQ handler&lt;br /&gt;
&lt;br /&gt;
	org $0100&lt;br /&gt;
	dc.b &amp;quot;NEO-GEO&amp;quot;,$00&lt;br /&gt;
&lt;br /&gt;
	org $0108&lt;br /&gt;
	dc.w $1234	;NGH&lt;br /&gt;
&lt;br /&gt;
	org $0122&lt;br /&gt;
	jmp USER	;entry&lt;br /&gt;
&lt;br /&gt;
	org $0114&lt;br /&gt;
	dc.w $0100	;logo flag, don&#039;t show it just go straight to the entry point&lt;br /&gt;
&lt;br /&gt;
	org $0182&lt;br /&gt;
	dc.l Code	;code pointer&lt;br /&gt;
Code:&lt;br /&gt;
	dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D&lt;br /&gt;
	dc.l $0A0813C0,$00300001,$32100C01,$00FF671A&lt;br /&gt;
	dc.l $30280002,$B02D0ACE,$66103028,$0004B02D&lt;br /&gt;
	dc.l $0ACF6606,$B22D0AD0,$67085088,$51CFFFD4&lt;br /&gt;
	dc.l $36074E75,$206D0A04,$3E2D0A08,$3210E049&lt;br /&gt;
	dc.l $0C0100FF,$671A3010,$B02D0ACE,$66123028&lt;br /&gt;
	dc.l $0002E048,$B02D0ACF,$6606B22D,$0AD06708&lt;br /&gt;
	dc.l $588851CF,$FFD83607&lt;br /&gt;
	dc.w $4e75&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Full header (from some unknown example code)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
    org $0100&lt;br /&gt;
    dc.b &amp;quot;NEO-GEO&amp;quot;,$00&lt;br /&gt;
&lt;br /&gt;
    dc.w $1234        ;NGH&lt;br /&gt;
    dc.l $00080000    ;P ROM size&lt;br /&gt;
    dc.l $00100000    ;debug DIPs pointer&lt;br /&gt;
    dc.w $01          ;size of DIP data&lt;br /&gt;
    dc.b $00          ;let the BIOS show the logo&lt;br /&gt;
    dc.b $1B          ;first tile of the logo is $1B00&lt;br /&gt;
    dc.l JPConfig     ;Japanese config menu pointer&lt;br /&gt;
    dc.l USConfig     ;US config menu pointer&lt;br /&gt;
    dc.l EUConfig     ;European config menu pointer&lt;br /&gt;
&lt;br /&gt;
    jmp        USER&lt;br /&gt;
    jmp        PLAYER_START&lt;br /&gt;
    jmp        DEMO_END&lt;br /&gt;
    jmp        COIN_SOUND&lt;br /&gt;
&lt;br /&gt;
    org $0182&lt;br /&gt;
    dc.l Code         ;code pointer&lt;br /&gt;
Code:&lt;br /&gt;
    dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D&lt;br /&gt;
    dc.l $0A0813C0,$00300001,$32100C01,$00FF671A&lt;br /&gt;
    dc.l $30280002,$B02D0ACE,$66103028,$0004B02D&lt;br /&gt;
    dc.l $0ACF6606,$B22D0AD0,$67085088,$51CFFFD4&lt;br /&gt;
    dc.l $36074E75,$206D0A04,$3E2D0A08,$3210E049&lt;br /&gt;
    dc.l $0C0100FF,$671A3010,$B02D0ACE,$66123028&lt;br /&gt;
    dc.l $0002E048,$B02D0ACF,$6606B22D,$0AD06708&lt;br /&gt;
    dc.l $588851CF,$FFD83607&lt;br /&gt;
    dc.w $4e75&lt;br /&gt;
&lt;br /&gt;
    ; Configuration menu layouts (soft DIPs)&lt;br /&gt;
 JPConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&lt;br /&gt;
 USConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&lt;br /&gt;
 EUConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==For CD systems==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
    org     $100&lt;br /&gt;
    dc.b    &amp;quot;NEO-GEO&amp;quot;,$02           ;CDDA flag&lt;br /&gt;
    dc.w    $1234                   ;NGH&lt;br /&gt;
    dc.l    $00080000               ;P ROM size&lt;br /&gt;
    dc.l    $00100000               ;debug DIPs pointer&lt;br /&gt;
    dc.w    $01                     ;size of DIP data&lt;br /&gt;
    dc.b    $00                     ;let the BIOS show the logo&lt;br /&gt;
    dc.b    $1B                     ;first tile of the logo is $1B00&lt;br /&gt;
    dc.l    JPConfig                ;Japanese config menu pointer&lt;br /&gt;
    dc.l    USConfig                ;US config menu pointer&lt;br /&gt;
    dc.l    EUConfig                ;European config menu pointer&lt;br /&gt;
&lt;br /&gt;
    org     $122&lt;br /&gt;
    jmp     Start&lt;br /&gt;
&lt;br /&gt;
    org     $13A&lt;br /&gt;
    dc.w    $0000                   ;Z80 RAM address for CDDA commands&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;br /&gt;
[[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9152</id>
		<title>Software DIPs</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Software_DIPs&amp;diff=9152"/>
		<updated>2026-02-07T16:47:57Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Softdips.png|thumb|right|A Soft DIPs setup screen.]]&lt;br /&gt;
&lt;br /&gt;
Software DIPs are a list of a maximum of 14 game-specific settings. They can be modified from the MVS [[System ROM]] menu, or with system ROM hacks for other systems.&lt;br /&gt;
&lt;br /&gt;
The settings names and their possible values are stored in the game&#039;s [[68k program header]] in a specific format, read by the system ROM to form a menu.&lt;br /&gt;
&lt;br /&gt;
On the [[MVS]], the settings are saved for each game in the [[backup RAM]].&lt;br /&gt;
&lt;br /&gt;
The settings are copied from backup RAM to [[68k user RAM|user RAM]] to &#039;&#039;&#039;BIOS_GAME_DIP&#039;&#039;&#039; ($10FD84) just before the game is started up. If no settings are found, they&#039;re initialized to the default values.&lt;br /&gt;
&lt;br /&gt;
(Does the system ROM check values pulled from the backup RAM against the bounds given by the game ? Can a corrupt backup RAM save make games crash with&lt;br /&gt;
out of bounds settings ?)&lt;br /&gt;
&lt;br /&gt;
Software DIPs settings aren&#039;t available on the AES, the system ROM always loads the game&#039;s default values.&lt;br /&gt;
&lt;br /&gt;
== Config data description ==&lt;br /&gt;
&lt;br /&gt;
Most of the following information by [[User:ElBarto|ElBarto]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;0x00&#039;&#039;&#039;&lt;br /&gt;
| 16 bytes&lt;br /&gt;
| Game name, no termination char required.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x10&#039;&#039;&#039;&lt;br /&gt;
| 6 bytes&lt;br /&gt;
| Special settings list, 4 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x16&#039;&#039;&#039;&lt;br /&gt;
| 10 bytes&lt;br /&gt;
| Simple settings list, up to 10 entries. See description below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0x20&#039;&#039;&#039;&lt;br /&gt;
| x*12 bytes&lt;br /&gt;
| String table. Strings are 12 bytes long and padded with 0x20 (space). Max number ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Special settings list===&lt;br /&gt;
&lt;br /&gt;
The special settings list holds 4 entries: the first 2 are for time settings, and the last 2 are for count settings.&lt;br /&gt;
&lt;br /&gt;
A time setting occupies one word, which defines the default value:&lt;br /&gt;
* The upper byte is the minutes (up to 29 ?, in BCD).&lt;br /&gt;
* The lower byte is the seconds (in BCD).&lt;br /&gt;
&lt;br /&gt;
An unused time setting must be set to 0xFFFF.&lt;br /&gt;
&lt;br /&gt;
A count setting occupies one byte, which defines the default value. It can go from 0 to 100 (not in BCD), with 0 displayed as &amp;quot;WITHOUT&amp;quot; and 100 as &amp;quot;INFINITE&amp;quot;.&lt;br /&gt;
In some versions of the [[system ROM]], &amp;quot;times&amp;quot; is displayed after the value ?&lt;br /&gt;
&lt;br /&gt;
An unused count setting must be set to 0xFF.&lt;br /&gt;
&lt;br /&gt;
All special settings use a single string from the strings table, for the setting&#039;s name.&lt;br /&gt;
&lt;br /&gt;
===Simple settings list===&lt;br /&gt;
&lt;br /&gt;
Each options occupies one byte.&lt;br /&gt;
&lt;br /&gt;
The upper 4 bits define the default value (starts from 0) and the lower 4 bits the number of choices.&lt;br /&gt;
&lt;br /&gt;
A few games have a simple setting entry with a number of choices set to zero, just to show a &amp;quot;▼NEXT PAGE&amp;quot; string on the bottom of the MVS menu.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $FFFF                              ; Special settings list (none used)&lt;br /&gt;
    dc.w    $FFFF&lt;br /&gt;
    dc.b    $FF,$FF&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    ; String table:&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Config_1.png]]&lt;br /&gt;
|[[File:Config_2.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    dc.b    &amp;quot;TEST ROM        &amp;quot;                 ; Game name&lt;br /&gt;
    dc.w    $4220                              ; Special setting 1: 42 minutes 20 seconds&lt;br /&gt;
    dc.w    $2042                              ; Special setting 2: 20 minutes 42 seconds&lt;br /&gt;
    dc.b    $42                                ; Special setting 3: 66&lt;br /&gt;
    dc.b    $64                                ; Special setting 4: 100 (&amp;quot;INFINITE&amp;quot;)&lt;br /&gt;
    dc.b    $24                                ; Simple setting 1: 4 choices, default is #2&lt;br /&gt;
    dc.b    $02                                ; Simple setting 2: 2 choices, default is #0&lt;br /&gt;
    dc.b    $00,$00,$00,$00,$00,$00,$00,$00&lt;br /&gt;
    dc.b    &amp;quot;TIMER 1     &amp;quot;                     ; Special setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;TIMER 2     &amp;quot;                     ; Special setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER     &amp;quot;                     ; Special setting 3&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;COUNTER SPE &amp;quot;                     ; Special setting 4&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;                     ; Simple setting 1&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;                     ; Simple setting 1&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;                     ; Simple setting 2&#039;s description&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;                     ; Simple setting 2&#039;s choices&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config_3.png]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=68k_program_header&amp;diff=9151</id>
		<title>68k program header</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=68k_program_header&amp;diff=9151"/>
		<updated>2026-02-06T22:33:11Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* For cartridge systems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ASM ROM header templates.&lt;br /&gt;
&lt;br /&gt;
==For cartridge systems==&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;Size&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$100&lt;br /&gt;
|7 bytes&lt;br /&gt;
|&amp;quot;NEO-GEO&amp;quot; string (first cartridge recognition code).&lt;br /&gt;
|-&lt;br /&gt;
|$107&lt;br /&gt;
|byte&lt;br /&gt;
|System version (0 for cartridge systems, 1 or 2 for adapted cart games on Neo CD ?).&lt;br /&gt;
|-&lt;br /&gt;
|$108&lt;br /&gt;
|word&lt;br /&gt;
|[[NGH number]] in BCD, 0000 prohibited.&lt;br /&gt;
|-&lt;br /&gt;
|$10A&lt;br /&gt;
|longword&lt;br /&gt;
|Total [[P ROM]] data size in bytes.&lt;br /&gt;
|-&lt;br /&gt;
|$10E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to backup RAM data block (in [[68k user RAM]]). The first 2 bytes are the [[debug DIPs]].&lt;br /&gt;
|-&lt;br /&gt;
|$112&lt;br /&gt;
|word&lt;br /&gt;
|Size of the required game save data in bytes.&lt;br /&gt;
|-&lt;br /&gt;
|$114&lt;br /&gt;
|byte&lt;br /&gt;
|[[Eyecatcher]] animation flag. 0=Done by system ROM, 1=Done by game, 2=Nothing.&lt;br /&gt;
|-&lt;br /&gt;
|$115&lt;br /&gt;
|byte&lt;br /&gt;
|Sprite bank number (upper 8 bits of tile number) for the eye-catcher logo, if done by system ROM.&lt;br /&gt;
|-&lt;br /&gt;
|$116&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Japanese [[Software_DIPs|software DIPs settings layout]].&lt;br /&gt;
|-&lt;br /&gt;
|$11A&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to US settings software DIPs settings layout.&lt;br /&gt;
|-&lt;br /&gt;
|$11E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Euro settings software DIPs settings layout.&lt;br /&gt;
|-&lt;br /&gt;
|$122&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[USER subroutine]] (code start).&lt;br /&gt;
|-&lt;br /&gt;
|$128&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[PLAYER_START subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$12E&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[DEMO_END subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$134&lt;br /&gt;
|6 bytes&lt;br /&gt;
|JMP to [[COIN_SOUND subroutine]].&lt;br /&gt;
|-&lt;br /&gt;
|$182&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to [[security code]] (second cartridge recognition code). Must be word aligned.&lt;br /&gt;
|-&lt;br /&gt;
|$186&lt;br /&gt;
|longword&lt;br /&gt;
|Unknown (seems only set to 0x00000000 on boards containing Spanish software DIPs).&lt;br /&gt;
|-&lt;br /&gt;
|$18A&lt;br /&gt;
|longword&lt;br /&gt;
|Unknown (seems only set to 0x00000001 on boards containing Spanish software DIPs).&lt;br /&gt;
|-&lt;br /&gt;
|$18E&lt;br /&gt;
|longword&lt;br /&gt;
|Pointer to Spanish settings software DIPs settings layout (not all games use this).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Minimal header (from [[User:Smkdan|Smkdan&#039;s]] sources)===&lt;br /&gt;
&lt;br /&gt;
No need for a complete [[68k vector table]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
	org $0000&lt;br /&gt;
	dc.l $10F300&lt;br /&gt;
&lt;br /&gt;
	org $0004&lt;br /&gt;
	dc.l $C00402&lt;br /&gt;
&lt;br /&gt;
	org $0064&lt;br /&gt;
	dc.l VBLANK	;IRQ handler&lt;br /&gt;
&lt;br /&gt;
	org $0100&lt;br /&gt;
	dc.b &amp;quot;NEO-GEO&amp;quot;,$00&lt;br /&gt;
&lt;br /&gt;
	org $0108&lt;br /&gt;
	dc.w $1234	;NGH&lt;br /&gt;
&lt;br /&gt;
	org $0122&lt;br /&gt;
	jmp USER	;entry&lt;br /&gt;
&lt;br /&gt;
	org $0114&lt;br /&gt;
	dc.w $0100	;logo flag, don&#039;t show it just go straight to the entry point&lt;br /&gt;
&lt;br /&gt;
	org $0182&lt;br /&gt;
	dc.l Code	;code pointer&lt;br /&gt;
Code:&lt;br /&gt;
	dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D&lt;br /&gt;
	dc.l $0A0813C0,$00300001,$32100C01,$00FF671A&lt;br /&gt;
	dc.l $30280002,$B02D0ACE,$66103028,$0004B02D&lt;br /&gt;
	dc.l $0ACF6606,$B22D0AD0,$67085088,$51CFFFD4&lt;br /&gt;
	dc.l $36074E75,$206D0A04,$3E2D0A08,$3210E049&lt;br /&gt;
	dc.l $0C0100FF,$671A3010,$B02D0ACE,$66123028&lt;br /&gt;
	dc.l $0002E048,$B02D0ACF,$6606B22D,$0AD06708&lt;br /&gt;
	dc.l $588851CF,$FFD83607&lt;br /&gt;
	dc.w $4e75&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Full header (from some unknown example code)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
    org $0100&lt;br /&gt;
    dc.b &amp;quot;NEO-GEO&amp;quot;,$00&lt;br /&gt;
&lt;br /&gt;
    dc.w $1234        ;NGH&lt;br /&gt;
    dc.l $00080000    ;P ROM size&lt;br /&gt;
    dc.l $00100000    ;debug DIPs pointer&lt;br /&gt;
    dc.w $01          ;size of DIP data&lt;br /&gt;
    dc.b $00          ;let the BIOS show the logo&lt;br /&gt;
    dc.b $1B          ;first tile of the logo is $1B00&lt;br /&gt;
    dc.l JPConfig     ;Japanese config menu pointer&lt;br /&gt;
    dc.l USConfig     ;US config menu pointer&lt;br /&gt;
    dc.l EUConfig     ;European config menu pointer&lt;br /&gt;
&lt;br /&gt;
    jmp        USER&lt;br /&gt;
    jmp        PLAYER_START&lt;br /&gt;
    jmp        DEMO_END&lt;br /&gt;
    jmp        COIN_SOUND&lt;br /&gt;
&lt;br /&gt;
    org $0182&lt;br /&gt;
    dc.l Code         ;code pointer&lt;br /&gt;
Code:&lt;br /&gt;
    dc.l $76004A6D,$0A146600,$003C206D,$0A043E2D&lt;br /&gt;
    dc.l $0A0813C0,$00300001,$32100C01,$00FF671A&lt;br /&gt;
    dc.l $30280002,$B02D0ACE,$66103028,$0004B02D&lt;br /&gt;
    dc.l $0ACF6606,$B22D0AD0,$67085088,$51CFFFD4&lt;br /&gt;
    dc.l $36074E75,$206D0A04,$3E2D0A08,$3210E049&lt;br /&gt;
    dc.l $0C0100FF,$671A3010,$B02D0ACE,$66123028&lt;br /&gt;
    dc.l $0002E048,$B02D0ACF,$6606B22D,$0AD06708&lt;br /&gt;
    dc.l $588851CF,$FFD83607&lt;br /&gt;
    dc.w $4e75&lt;br /&gt;
&lt;br /&gt;
    ; Configuration menu layouts (soft DIPs)&lt;br /&gt;
 JPConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&lt;br /&gt;
 USConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&lt;br /&gt;
 EUConfig:&lt;br /&gt;
    dc.b    &amp;quot;0123456789ABCDEF&amp;quot;                            ; Game name&lt;br /&gt;
    dc.b    $FF,$FF,$FF,$FF,$FF,$FF                       ; Special list&lt;br /&gt;
    dc.b    $24,$02,$00,$00,$00,$00,$00,$00,$00,$00       ; Option list&lt;br /&gt;
    dc.b    &amp;quot;LIVES       &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;1           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;2           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;3           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;4           &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;HOW TO PLAY &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITH        &amp;quot;&lt;br /&gt;
    dc.b    &amp;quot;WITHOUT     &amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==For CD systems==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
    org     $100&lt;br /&gt;
    dc.b    &amp;quot;NEO-GEO&amp;quot;,$02           ;CDDA flag&lt;br /&gt;
    dc.w    $1234                   ;NGH&lt;br /&gt;
    dc.l    $00080000               ;P ROM size&lt;br /&gt;
    dc.l    $00100000               ;debug DIPs pointer&lt;br /&gt;
    dc.w    $01                     ;size of DIP data&lt;br /&gt;
    dc.b    $00                     ;let the BIOS show the logo&lt;br /&gt;
    dc.b    $1B                     ;first tile of the logo is $1B00&lt;br /&gt;
    dc.l    JPConfig                ;Japanese config menu pointer&lt;br /&gt;
    dc.l    USConfig                ;US config menu pointer&lt;br /&gt;
    dc.l    EUConfig                ;European config menu pointer&lt;br /&gt;
&lt;br /&gt;
    org     $122&lt;br /&gt;
    jmp     Start&lt;br /&gt;
&lt;br /&gt;
    org     $13A&lt;br /&gt;
    dc.w    $0000                   ;Z80 RAM address for CDDA commands&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Base system]]&lt;br /&gt;
[[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=BIOS_calls&amp;diff=9150</id>
		<title>BIOS calls</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=BIOS_calls&amp;diff=9150"/>
		<updated>2026-02-06T22:10:10Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: /* Jump tables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please see [[68k ASM defines]] or [[C Defines]] for the hex addresses.&lt;br /&gt;
&lt;br /&gt;
= Jump tables =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;regdef&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Call address&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[NEO-EP0]] AES BIOS&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&amp;quot;SP-E&amp;quot; MVS BIOS&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&amp;quot;TOP-SP1-1&amp;quot; CDM3-2 BIOS&#039;&#039;&#039; &amp;amp; &#039;&#039;&#039;&amp;quot;FRONT-SP1&amp;quot; BIOS&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;&amp;quot;NEOCD.BIN&amp;quot; CDZ BIOS&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$C00402 to $C00432&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|Entry point (system boots here)&lt;br /&gt;
|-&lt;br /&gt;
|$C00438&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[SYSTEM_INT1]]&lt;br /&gt;
|-&lt;br /&gt;
|$C0043E&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[SYSTEM_INT2]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|RTS&lt;br /&gt;
|-&lt;br /&gt;
|$C00444&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[SYSTEM_RETURN]]&lt;br /&gt;
|-&lt;br /&gt;
|$C0044A&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[SYSTEM_IO]]&lt;br /&gt;
|-&lt;br /&gt;
|$C00450&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[CREDIT_CHECK]]&lt;br /&gt;
|-&lt;br /&gt;
|$C00456&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[CREDIT_DOWN]]&lt;br /&gt;
|-&lt;br /&gt;
|$C0045C&lt;br /&gt;
|RTS&lt;br /&gt;
|[[READ_CALENDAR]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|RTS&lt;br /&gt;
|-&lt;br /&gt;
|$C00462&lt;br /&gt;
|RTS&lt;br /&gt;
|[[SETUP_CALENDAR]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|RTS&lt;br /&gt;
|-&lt;br /&gt;
|$C00468&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[CARD]]&lt;br /&gt;
|-&lt;br /&gt;
|$C0046E&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[CARD_ERROR]]&lt;br /&gt;
|-&lt;br /&gt;
|$C00474&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[HOW_TO_PLAY]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|RTS&lt;br /&gt;
|-&lt;br /&gt;
|$C0047A&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Calc a checksum and loop forever&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|RTS&lt;br /&gt;
|-&lt;br /&gt;
|$C00480 to $C004BC&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|RTS&lt;br /&gt;
|-&lt;br /&gt;
|$C004C2&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[FIX_CLEAR]]&lt;br /&gt;
|-&lt;br /&gt;
|$C004C8&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[LSP_1st]]&lt;br /&gt;
|-&lt;br /&gt;
|$C004CE&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[MESS_OUT]]&lt;br /&gt;
|-&lt;br /&gt;
|$C004D4&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|[[CONTROLLER_SETUP]]&lt;br /&gt;
|-&lt;br /&gt;
|$C004DA&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|RTS&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|HBlank handler&lt;br /&gt;
|-&lt;br /&gt;
|$C004E0 to $C004F2&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|$FF0000 range register operations and RTEs&lt;br /&gt;
|-&lt;br /&gt;
|$C004F8 to $C0051C&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|RTS&lt;br /&gt;
|-&lt;br /&gt;
|$C00522 to $C00540&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|?&lt;br /&gt;
|-&lt;br /&gt;
|$C00546&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[BIOSF_UPLOAD]]&lt;br /&gt;
|-&lt;br /&gt;
|$C0054C&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|?&lt;br /&gt;
|-&lt;br /&gt;
|$C00552&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[BIOSF_LOADFILE]]&lt;br /&gt;
|-&lt;br /&gt;
|$C00558&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|?&lt;br /&gt;
|-&lt;br /&gt;
|$C0055E&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|BIOSF_CDPLAYER&lt;br /&gt;
|-&lt;br /&gt;
|$C00564&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|BIOSF_LOADFILEX (?)&lt;br /&gt;
|-&lt;br /&gt;
|$C0056A&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[BIOSF_CDDACMD]]&lt;br /&gt;
|-&lt;br /&gt;
|$C00570&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[BIOSF_VIDEOEN]]&lt;br /&gt;
|-&lt;br /&gt;
|$C00576&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[BIOSF_PUSHCDOP]]&lt;br /&gt;
|-&lt;br /&gt;
|$C0057C&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[BIOSF_SETCDDMODE]]&lt;br /&gt;
|-&lt;br /&gt;
|$C00582&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[BIOSF_RESETGAME]]&lt;br /&gt;
|-&lt;br /&gt;
|$C00588 to $C00594&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|RTS&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|$C0059A to $C006FC&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Invalid&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|RTS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Generic BIOS calls =&lt;br /&gt;
BIOS calls common to every system.&lt;br /&gt;
&lt;br /&gt;
*[[FIX_CLEAR]]: Clear fix layer&lt;br /&gt;
*[[LSP_1st]]: Clear sprites&lt;br /&gt;
*[[SYSTEM_INT1]]: Multiple purpose VBL routine&lt;br /&gt;
*[[CARD]]: Perform memory card operation&lt;br /&gt;
&lt;br /&gt;
= MVS only BIOS calls =&lt;br /&gt;
* [[READ_CALENDAR]]: Read the current calendar values and update the relevant BIOS RAM locations&lt;br /&gt;
* [[SETUP_CALENDAR]]: Set the calendar values to the data from the relevant BIOS RAM locations&lt;br /&gt;
&lt;br /&gt;
= CD only BIOS calls =&lt;br /&gt;
&lt;br /&gt;
*[[BIOSF_VIDEOEN]]: Enable/disable video layers&lt;br /&gt;
*[[BIOSF_UPLOAD]]: Upload data to [[DRAM]]&lt;br /&gt;
*[[BIOSF_LOADFILE]]: Load file from CD (with animation)&lt;br /&gt;
*BIOSF_CDPLAYER ($C0055E): Reset to CD player&lt;br /&gt;
*BIOSF_LOADFILEX (?) ($C00564): Load file from CD (no animation)&lt;br /&gt;
*[[BIOSF_CDDACMD]]: Issue CDDA command&lt;br /&gt;
&lt;br /&gt;
= CDZ only BIOS calls =&lt;br /&gt;
&lt;br /&gt;
Check track 0 ? [[Copy protection]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BIOS calls]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=Replacement_chip&amp;diff=9149</id>
		<title>Replacement chip</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=Replacement_chip&amp;diff=9149"/>
		<updated>2026-01-25T20:21:07Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: Updated options, reasoning, done/todo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes about modern SNK chips replacements. Some info can be generalized to replacement of digital custom chips in general.&lt;br /&gt;
&lt;br /&gt;
Reading various [[http://newlifegames.com/nlg/index.php?topic=1859.0 repair logs]], it appears that dead or partially faulty SNK chips are a common issue. Original replacements aren&#039;t available outside of some limited new-old-stock occasionally found on Aliexpress and eBay, which might exhibit the same problems if faults are a material or environmental issue. Another common solution is to pull chips from donor boards which are deemed unfixable. Both rely on available stocks that obviously aren&#039;t replenished anymore.&lt;br /&gt;
&lt;br /&gt;
For preservation, it can be desirable to produce drop-in replacement chips that are reliable, faithful to the originals, and economically sensible.&lt;br /&gt;
&lt;br /&gt;
=Considered solutions=&lt;br /&gt;
&lt;br /&gt;
Nobody likes rewiring to accomodate different pinouts, especially 80+ pins chips. Producing new ASICs is out of the question because of the price at low quantities, and because many packages used back in the day aren&#039;t available anymore.&lt;br /&gt;
&lt;br /&gt;
* Dedicated ASICs ? No: not worth it for such low quantities, development and production of bare dies in the $30-40k range. Doesn&#039;t solve the packaging problem.&lt;br /&gt;
* Shuttle service ASICs ? Possible but development still quite expensive if several iterations needed. Doesn&#039;t solve the packaging problem.&lt;br /&gt;
* Reconstruct the chip&#039;s logic with regular logic chips ? Possible if logic is very simple and footprint large enough. TSSOP and QFN parts.&lt;br /&gt;
* Use 2 boards on top of each other with a mezzanine connector ? Possible but more expensive and fragile.&lt;br /&gt;
* Use a CPLD ? Possible if logic simple enough and no RAM blocks needed. Microchip ATF series, Lattice LC4000ZE, and Greenpaks are 5V-tolerant, still made and affordable. Altera MAX3000 and Xilinx XC9500 are phased out but stock is still available.&lt;br /&gt;
* Use a FPGA ? No 5V-tolerant parts available anymore, requires voltage shifting (space issue). Flash-based parts like Gowin GW1N, Lattice iCE40 and Altera MAX10 are of interest.&lt;br /&gt;
&lt;br /&gt;
The only solution would be adapter boards the size of the original chips, with castellated holes for surface mounting ?&lt;br /&gt;
&lt;br /&gt;
=List=&lt;br /&gt;
&lt;br /&gt;
*[[NEO-257]]: QFP64R, 5 standard logic chips, done&lt;br /&gt;
*[[NEO-273]]: QFP64R, 5 standard logic chips, done&lt;br /&gt;
*[[NEO-BUF]]: QFP48, 2 standard logic chips, done&lt;br /&gt;
*[[PRO-C0]]: Possible but doesn&#039;t seem to fail often and only used on 1st gen systems and games, see ZMC2&lt;br /&gt;
*[[NEO-C1]]: QFP100R, fits in 128LEs, all options too big to fit in footprint, flex adapter being attempted&lt;br /&gt;
*[[NEO-D0]]: QFP64R, CPLD, done&lt;br /&gt;
*[[NEO-E0]]: QFP64R, not enough IOs on QFP100 CPLD, standard logic chips and Greenpaks, done&lt;br /&gt;
*[[NEO-F0]]: QFP64R, possible with CPLD ?&lt;br /&gt;
*[[NEO-G0]]: QFP64R, 5 standard logic chips, done&lt;br /&gt;
*[[NEO-I0]]: QFP64R, possible with CPLD ?&lt;br /&gt;
*[[NEO-ZMC]]: Very small, can be found on AliExpress (January 2026). Possible with Greenpak ?&lt;br /&gt;
*[[NEO-ZMC2]]: QFP80R, CPLD, done&lt;br /&gt;
*[[PCM]]: QFP80R, CPLD, done&lt;br /&gt;
*[[NEO-DCR-T]], [[NEO-SDR-T]]: QFP100R, same problem as for NEO-C1.&lt;br /&gt;
*Line buffers ([[PRO-B0]], [[NEO-B1]]) could be replaced with MAX10&#039;s and level shifting ?. Probably not worth it.&lt;br /&gt;
&lt;br /&gt;
Most other custom chips are too complex to be worth replacing. LSPC requires FPGA, level shifters, very fine pitch adapter, ...&lt;br /&gt;
&lt;br /&gt;
=Logic definitions=&lt;br /&gt;
&lt;br /&gt;
See https://github.com/neogeodev/SNKVerilog&lt;br /&gt;
&lt;br /&gt;
[[Category:Repairs]]&lt;br /&gt;
[[Category:Chips]]&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=The_wiki&amp;diff=9008</id>
		<title>The wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=The_wiki&amp;diff=9008"/>
		<updated>2025-09-28T18:45:21Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main rule=&lt;br /&gt;
&lt;br /&gt;
Knowledge isn&#039;t an excuse for being a dick. Keep your ego at the door, please :)&lt;br /&gt;
&lt;br /&gt;
=Content directives=&lt;br /&gt;
&lt;br /&gt;
* No AI generated content. Not knowing is fine, pretending to know isn&#039;t. If you &amp;quot;don&#039;t care&amp;quot;, we won&#039;t either.&lt;br /&gt;
* No stolen content without the original author&#039;s approval, except if they explicitly stated as OK to do so.&lt;br /&gt;
* No blatant advertising for commercial products.&lt;br /&gt;
* No personal infos, except names of key people who already are publicly known.&lt;br /&gt;
* No non-technical infos about games (price, story, characters, gameplay, ...). Other websites exist for that.&lt;br /&gt;
* By posting information here, you know that it&#039;s going in the wild. If you want credit, you can sign (important) information, but don&#039;t expect people to care about it.&lt;br /&gt;
&lt;br /&gt;
==Editing guidelines==&lt;br /&gt;
&lt;br /&gt;
*To avoid creating duplicate pages, page names shouldn&#039;t contain upper case letters, except for the first one and for acronyms. Intra-wiki links are case sensitive.&lt;br /&gt;
*Try to keep page names singular.&lt;br /&gt;
*To avoid broken links to external files, please make a local copy by uploading them here (be sure you have the right to).&lt;br /&gt;
*If a picture has to be updated with major corrections (like a chip pinout for example), try to delete the wrong version to prevent search engines linking to wrong information.&lt;br /&gt;
*Don&#039;t hesitate to sign the information you add if you think you discovered something or to specify the source if not.&lt;br /&gt;
*It&#039;s perfectly okay to make 2-characters edit to correct English mistakes for example, as long as those edits are marked as &amp;quot;minor&amp;quot;.&lt;br /&gt;
*Links to other pages should ideally be made only once in a page (where it&#039;s the most visible or relevant).&lt;br /&gt;
*Category tags should be placed at the bottom of the pages sources.&lt;br /&gt;
&lt;br /&gt;
=How to edit=&lt;br /&gt;
&lt;br /&gt;
See https://www.mediawiki.org/wiki/Help:Reference_card&lt;br /&gt;
&lt;br /&gt;
For those who are unfamiliar with wiki editing and don&#039;t want to go through lengthy tutorials, here&#039;s a short summary of the basics:&lt;br /&gt;
&lt;br /&gt;
*Pages can be created, edited or deleted by any registered user. All operations are logged and can be reverted (&amp;quot;view history&amp;quot; tab).&lt;br /&gt;
*Each edit is signed by your username and a timestamp.&lt;br /&gt;
*Links to existing pages are in blue, links to needed pages are in red.&lt;br /&gt;
*When editing, clicking on the &amp;quot;Show preview&amp;quot; button won&#039;t log anything, &amp;quot;Save page&amp;quot; will.&lt;br /&gt;
*Marking an edit as &amp;quot;minor&amp;quot; allows to find important changes in logs and correct typos without having the update appear on the front page.&lt;br /&gt;
*As stated in all edit pages: the content you submit will be placed under the [http://www.gnu.org/licenses/fdl-1.3.en.html GNU FDL]. This is not the best place to keep things secret.&lt;br /&gt;
&lt;br /&gt;
Mediawiki uses a special markup language for formatting:&lt;br /&gt;
*Links to other pages look like this: &amp;lt;nowiki&amp;gt;[[Page name]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*They can be renamed like this: &amp;lt;nowiki&amp;gt;[[Page name|Link text]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Links to categories look like this: &amp;lt;nowiki&amp;gt;[[:Category:Category name]]&amp;lt;/nowiki&amp;gt; and can also be renamed with a |.&lt;br /&gt;
*Links to other sites look like this: &amp;lt;nowiki&amp;gt;[[http://www.com This is an external link]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Pictures can be inserted like this: &amp;lt;nowiki&amp;gt;[[File:image.jpg|thumb|This is a thumbnail and will be placed on the right]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Or simply like this, to display them in full size: &amp;lt;nowiki&amp;gt;[[File:image.jpg]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Bold&#039;&#039;&#039; looks like &amp;lt;nowiki&amp;gt;&#039;&#039;&#039;this&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;&#039;Italic&#039;&#039; looks like &amp;lt;nowiki&amp;gt;&#039;&#039;this&#039;&#039;&amp;lt;/nowiki&amp;gt; (those are apostrophes)&lt;br /&gt;
*Headlines are made by using = characters: =Title= is the biggest, ====Title==== is the smallest&lt;br /&gt;
*Table of contents are automatically generated for pages containing multiple headlines&lt;br /&gt;
*Categorizing a page is done by adding tags like this: &amp;lt;nowiki&amp;gt;[[Category:Category_name]]&amp;lt;/nowiki&amp;gt;, a page can belong in multiple categories.&lt;br /&gt;
*Tables are made using characters: {| starts a table, | starts a new cell, |- starts a new line, |} ends a table. Each of those characters need to be at the start of a new line.&lt;br /&gt;
*CSS and HTML markup can also be used most of the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*To create a page, just type its URL or make a link to it and click &amp;quot;create&amp;quot;. There can&#039;t be 404 errors here, any link to pages or files which don&#039;t exist give a &amp;quot;create&amp;quot; page.&lt;br /&gt;
*Member pages can be created and edited only by the associated member. These can hold informations about yourself, your current projects...&lt;br /&gt;
&lt;br /&gt;
=Templates=&lt;br /&gt;
&lt;br /&gt;
==CSS==&lt;br /&gt;
&lt;br /&gt;
Common.css can be found here: [https://wiki.neogeodev.org/index.php?title=MediaWiki:Common.css].&lt;br /&gt;
&lt;br /&gt;
==Binary register definitions==&lt;br /&gt;
&lt;br /&gt;
[[Template:16BitRegister]] and [[Template:8BitRegister]] can be used to display such tables:&lt;br /&gt;
{{16BitRegister|High byte|8|Lower byte|8}}&lt;br /&gt;
&lt;br /&gt;
The code for this one is: &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{16BitRegister|High byte|8|Lower byte|8}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments go by pairs: starting from 0, even ones are the text definition, odd ones are the size of it (in bits). The total size must be equal to the register&#039;s length or else the table will be broken and browsers might be unhappy.&lt;br /&gt;
&lt;br /&gt;
==Link templates==&lt;br /&gt;
&lt;br /&gt;
===Register===&lt;br /&gt;
[[Template:Reg]]. Parameters: register name (not the address).&lt;br /&gt;
&lt;br /&gt;
===Signal===&lt;br /&gt;
[[Template:Sig]]. Parameters: signal name, anchor name in [[signal names]] page, signal polarity (&amp;quot;N&amp;quot;, &amp;quot;P&amp;quot;, or nothing).&lt;br /&gt;
&lt;br /&gt;
===RAM location===&lt;br /&gt;
[[Template:BR]]. Parameters: location name (not the address).&lt;br /&gt;
&lt;br /&gt;
===Chip===&lt;br /&gt;
[[Template:Chipname]]. Parameters: chip name/reference.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
[[Template:PCB]]. Parameters: board reference.&lt;br /&gt;
&lt;br /&gt;
=Chip pinout templates=&lt;br /&gt;
&lt;br /&gt;
The OpenOffice Draw format was previously used but a move to plain SVG is being made. See the [[https://github.com/neogeodev/SVGPinout SVGPinout NeoGeoDev repo]] to learn how to edit and generate pinouts easily.&lt;br /&gt;
&lt;br /&gt;
Color proposals for buses and pin types (feel free to discuss):&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:green;color:white;&amp;quot;&amp;gt;Green: cartridge slot connections or graphics data&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:yellow;&amp;quot;&amp;gt;Yellow: address buses&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:blue;color:white;&amp;quot;&amp;gt;Blue: data buses&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:lightgrey;&amp;quot;&amp;gt;Grey: ground&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:red;color:white;&amp;quot;&amp;gt;Red: power&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:purple;color:white;&amp;quot;&amp;gt;Purple: control lines&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:magenta;color:white;&amp;quot;&amp;gt;Magenta: clocks&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:white;color:black;&amp;quot;&amp;gt;White: NC (dotted), unknown, others...&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
	<entry>
		<id>https://wiki.neogeodev.org//index.php?title=The_wiki&amp;diff=9007</id>
		<title>The wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.neogeodev.org//index.php?title=The_wiki&amp;diff=9007"/>
		<updated>2025-09-28T09:40:10Z</updated>

		<summary type="html">&lt;p&gt;Furrtek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main rule=&lt;br /&gt;
&lt;br /&gt;
Knowledge isn&#039;t an excuse for being a dick. Keep your ego at the door, please :)&lt;br /&gt;
&lt;br /&gt;
=Content directives=&lt;br /&gt;
&lt;br /&gt;
* No AI generated content. Not knowing is fine, pretending to know isn&#039;t. If you &amp;quot;don&#039;t care&amp;quot;, we won&#039;t either.&lt;br /&gt;
* No stolen content without the original author&#039;s approval, except if they explicitly stated as OK to do so.&lt;br /&gt;
* No blatant advertising for commercial products.&lt;br /&gt;
* No personal infos, except names of key people who already are publicly known.&lt;br /&gt;
* No non-technical infos about games (price, story, characters, gameplay, ...). Other websites exist for that.&lt;br /&gt;
* By posting information here, you know that it&#039;s going in the wild. If you want credit, you can sign (important) information, but don&#039;t expect people to care about it.&lt;br /&gt;
&lt;br /&gt;
==Editing guidelines==&lt;br /&gt;
&lt;br /&gt;
*To avoid creating duplicate pages, page names shouldn&#039;t contain upper case letters, except for the first one and for acronyms. Intra-wiki links are case sensitive.&lt;br /&gt;
*Try to keep page names singular.&lt;br /&gt;
*To avoid broken links to external files, please make a local copy by uploading them here (be sure you have the right to).&lt;br /&gt;
*If a picture has to be updated with major corrections (like a chip pinout for example), try to delete the wrong version to prevent search engines linking to wrong information.&lt;br /&gt;
*Don&#039;t hesitate to sign the information you add if you think you discovered something or to specify the source if not.&lt;br /&gt;
*It&#039;s perfectly okay to make 2-characters edit to correct English mistakes for example, as long as those edits are marked as &amp;quot;minor&amp;quot;.&lt;br /&gt;
*Links to other pages should ideally be made only once in a page (where it&#039;s the most visible or relevant).&lt;br /&gt;
*Category tags should be placed at the bottom of the pages sources.&lt;br /&gt;
&lt;br /&gt;
=How to edit=&lt;br /&gt;
&lt;br /&gt;
See https://meta.wikimedia.org/wiki/Help:Reference_card&lt;br /&gt;
&lt;br /&gt;
For those who are unfamiliar with wiki editing and don&#039;t want to go through lengthy tutorials, here&#039;s a short summary of the basics:&lt;br /&gt;
&lt;br /&gt;
*Pages can be created, edited or deleted by any registered user. All operations are logged and can be reverted (&amp;quot;view history&amp;quot; tab).&lt;br /&gt;
*Each edit is signed by your username and a timestamp.&lt;br /&gt;
*Links to existing pages are in blue, links to needed pages are in red.&lt;br /&gt;
*When editing, clicking on the &amp;quot;Show preview&amp;quot; button won&#039;t log anything, &amp;quot;Save page&amp;quot; will.&lt;br /&gt;
*Marking an edit as &amp;quot;minor&amp;quot; allows to find important changes in logs and correct typos without having the update appear on the front page.&lt;br /&gt;
*As stated in all edit pages: the content you submit will be placed under the [http://www.gnu.org/licenses/fdl-1.3.en.html GNU FDL]. This is not the best place to keep things secret.&lt;br /&gt;
&lt;br /&gt;
Mediawiki uses a special markup language for formatting:&lt;br /&gt;
*Links to other pages look like this: &amp;lt;nowiki&amp;gt;[[Page name]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*They can be renamed like this: &amp;lt;nowiki&amp;gt;[[Page name|Link text]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Links to categories look like this: &amp;lt;nowiki&amp;gt;[[:Category:Category name]]&amp;lt;/nowiki&amp;gt; and can also be renamed with a |.&lt;br /&gt;
*Links to other sites look like this: &amp;lt;nowiki&amp;gt;[[http://www.com This is an external link]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Pictures can be inserted like this: &amp;lt;nowiki&amp;gt;[[File:image.jpg|thumb|This is a thumbnail and will be placed on the right]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*Or simply like this, to display them in full size: &amp;lt;nowiki&amp;gt;[[File:image.jpg]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Bold&#039;&#039;&#039; looks like &amp;lt;nowiki&amp;gt;&#039;&#039;&#039;this&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;&#039;Italic&#039;&#039; looks like &amp;lt;nowiki&amp;gt;&#039;&#039;this&#039;&#039;&amp;lt;/nowiki&amp;gt; (those are apostrophes)&lt;br /&gt;
*Headlines are made by using = characters: =Title= is the biggest, ====Title==== is the smallest&lt;br /&gt;
*Table of contents are automatically generated for pages containing multiple headlines&lt;br /&gt;
*Categorizing a page is done by adding tags like this: &amp;lt;nowiki&amp;gt;[[Category:Category_name]]&amp;lt;/nowiki&amp;gt;, a page can belong in multiple categories.&lt;br /&gt;
*Tables are made using characters: {| starts a table, | starts a new cell, |- starts a new line, |} ends a table. Each of those characters need to be at the start of a new line.&lt;br /&gt;
*CSS and HTML markup can also be used most of the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*To create a page, just type its URL or make a link to it and click &amp;quot;create&amp;quot;. There can&#039;t be 404 errors here, any link to pages or files which don&#039;t exist give a &amp;quot;create&amp;quot; page.&lt;br /&gt;
*Member pages can be created and edited only by the associated member. These can hold informations about yourself, your current projects...&lt;br /&gt;
&lt;br /&gt;
=Templates=&lt;br /&gt;
&lt;br /&gt;
==CSS==&lt;br /&gt;
&lt;br /&gt;
Common.css can be found here: [https://wiki.neogeodev.org/index.php?title=MediaWiki:Common.css].&lt;br /&gt;
&lt;br /&gt;
==Binary register definitions==&lt;br /&gt;
&lt;br /&gt;
[[Template:16BitRegister]] and [[Template:8BitRegister]] can be used to display such tables:&lt;br /&gt;
{{16BitRegister|High byte|8|Lower byte|8}}&lt;br /&gt;
&lt;br /&gt;
The code for this one is: &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{16BitRegister|High byte|8|Lower byte|8}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments go by pairs: starting from 0, even ones are the text definition, odd ones are the size of it (in bits). The total size must be equal to the register&#039;s length or else the table will be broken and browsers might be unhappy.&lt;br /&gt;
&lt;br /&gt;
==Link templates==&lt;br /&gt;
&lt;br /&gt;
===Register===&lt;br /&gt;
[[Template:Reg]]. Parameters: register name (not the address).&lt;br /&gt;
&lt;br /&gt;
===Signal===&lt;br /&gt;
[[Template:Sig]]. Parameters: signal name, anchor name in [[signal names]] page, signal polarity (&amp;quot;N&amp;quot;, &amp;quot;P&amp;quot;, or nothing).&lt;br /&gt;
&lt;br /&gt;
===RAM location===&lt;br /&gt;
[[Template:BR]]. Parameters: location name (not the address).&lt;br /&gt;
&lt;br /&gt;
===Chip===&lt;br /&gt;
[[Template:Chipname]]. Parameters: chip name/reference.&lt;br /&gt;
&lt;br /&gt;
===PCB===&lt;br /&gt;
[[Template:PCB]]. Parameters: board reference.&lt;br /&gt;
&lt;br /&gt;
=Chip pinout templates=&lt;br /&gt;
&lt;br /&gt;
The OpenOffice Draw format was previously used but a move to plain SVG is being made. See the [[https://github.com/neogeodev/SVGPinout SVGPinout NeoGeoDev repo]] to learn how to edit and generate pinouts easily.&lt;br /&gt;
&lt;br /&gt;
Color proposals for buses and pin types (feel free to discuss):&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:green;color:white;&amp;quot;&amp;gt;Green: cartridge slot connections or graphics data&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:yellow;&amp;quot;&amp;gt;Yellow: address buses&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:blue;color:white;&amp;quot;&amp;gt;Blue: data buses&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:lightgrey;&amp;quot;&amp;gt;Grey: ground&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:red;color:white;&amp;quot;&amp;gt;Red: power&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:purple;color:white;&amp;quot;&amp;gt;Purple: control lines&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:magenta;color:white;&amp;quot;&amp;gt;Magenta: clocks&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;background-color:white;color:black;&amp;quot;&amp;gt;White: NC (dotted), unknown, others...&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Furrtek</name></author>
	</entry>
</feed>