Write up on Tech geek history: Neo Geo Operating System

NEO-GEO_AES-logo-6B03AE7BD0-seeklogo.com

Most Gaming Consoles were Steppingstones to Modern Day Technology Operating System: Today we discuss Neo Geo:
The device includes a 4.3-inch LCD screen, SD card slot, A/V output, internal stereo speakers with a 3.5mm headphone jack.[9] A micro USB port on the system is used for charging the battery.[12] The screen’s 480×272 pixels resolution is the same as the original PlayStation Portable and is close to the 16:9 aspect ratio.[5]
The system was released as part of the Gold package, which includes the “Neo Geo X Station”, a replica of the original Neo Geo AES console that functions as a charging/docking station with its own composite video out and HDMI output along with a functioning replica of the original Neo Geo AES arcade stick controller.[4][13]
The Neo Geo X arcade stick controllers connect to the docking station via two USB ports.[12] Original Neo Geo AES controllers, game cartridges and memory cards are not compatible with the Neo Geo X.
The handheld has an 8-way thumbstick for directional control, menu and start buttons, four face buttons and four shoulder buttons: L1, L2, R1, R2. The shoulder buttons are used for changing screen aspect ratio and pausing games. Buttons to adjust volume and brightness are located under the handheld.[14][15]
The unit’s BIOS and pre-installed games were initially stored on an internal microSD card; later hardware revisions use a chip installed directly on the motherboard.
The Neo Geo AES of 1990 was the first video game console to offer the ability to use memory cards to save game progress. It initially used a 68 -pin 2KB SRAM memory card based on version 3 of the JEIDA standard and needed a battery inside the card to retain the data.
What really set Neo Geo apart at the time was that you could take a cartridge out of its MVS arcade cabinets and bring it home to its AES system and play. Even with this feature, Neo Geo was only able to maintain its status as a niche console never selling to the likes of its competitors. Moving just over one million consoles, the Neo Geo was also limited by its lineup of games, many of which focused on fighting.
By the end of 1997, the Neo Geo AES was canceled. Software development would surprisingly live on until 2004, again emphasizing the console’s status as a cult favorite.
Price
Priced at $399, the system was bundled with a control pad instead of the joystick that had made the original Neo Geo AES so unique. Unfortunately, for its price, the CD loading time was notoriously slow and quickly frustrated gamers who had to often wait a full minute before a title would load completely.
SNK quickly promised to deliver a model that would double the speed of the built-in CD ROM in North America but never delivered on their commitment. By 1996, SNK announced they would double speeds as the cost was too high until they sold through the initial run of Neo Geo CD consoles.
A version with the double-speed loading CD drive was sold in Japan as a “CDZ” model with North American enthusiasts importing the console. Without a region lock, games launched in the U.S. played much better than the original console release.
The unit’s BIOS and pre-installed games were initially stored on an internal microSD card; later hardware revisions use a chip installed directly on the motherboard.
The NEOGEO is a quite interesting architecture. It consists of a Motorola MC68000 main CPU and a Z80 for sound. Like many 2D (arcade) machines the graphics hardware is tile based to save ROM space and to support hardware manipulation of the 2d entities. The Z80 is connected with a YM2610 sound chip to produce sound.
The MC68000 communicates through a Memory Mapped I/O register with the Z80. As far as my observations go, the MC68000 just says what soundtrack or sample should be played, the rest is handled by the Z80. Another interesting aspect is the memory layout of the NEOGEO. The MC68000 has only access to the program roms (with use of bank switching of course), the working RAM and some other regions which are shown in the Memory section of this document. The whole character data (graphic) is not visible for the MC68000. Only the graphics system has access to this one, so you cannot manipulate the graphics itself. The same counts for the sounds roms. The main CPU has no access to this roms, only the Z80 has. This distributed memory layout is the reason that the NEOGEO roms can be so huge although the main CPU has only a 24 bit wide address bus.

The Neo-Geo uses a MC68000 which runs at a clock speed of 12Mhz. Now I list some features about the CPU found on motorolas website: 32 Bit Data and Address Registers 16 MByte Direct Addressing Range 56 Powerful Instructions 2.2 NEOGEO CPU’s 5 Memory Mapped Input/Output 14 Addressing Modes 2 MIPS at 20MHz The CPU is a CISC (Complex Instruction Set Computers) architecture. 2.2.2 Zilog Z80 – Sound CPU The other CPU in the Neo-Geo is the Z80. It is a 8bit processor and runs at a clock speed of 4Mhz. More will be added soon! Currently I focus on the rest of the hardware and writing development tools 1.2 Memory System ROM 128 Kbytes (including System Fix ROM)
Working RAM 64 Kbytes VRAM 64 Kbytes (propably even a little bit more, some research needed) Palette RAM 8192 Kbytes (the exact number of colors seems to be 4096 (bankswitching?)) Program ROM 5 Mbytes (1 Mbyte + 4 Mbytes bankswitchable ROM) Character ROM 64 Mbytes (8 x 8 Mbytes ROM) Sound ROM 16 Mbytes (4 x 4 Mbytes ROM) Fix ROM 4 Mbytes? 16 bit index and propably 64 bytes per tile. 2.4 Display It seems that the NEOGEO supports two resolution modes, one is 320 x 224 and the other is 304 x 224 (garou?). The graphics processing circuit supports 384 hardware rendered sprites from a size of 16×16 to 16×512 (it is not accurate, theoretically it should be more pixels in width because you can join the many 16 pixel width sprites together). This sprites are also able to be hardware scaled. Contrary to common claim the NEOGEO does not support zooming. The often noticed zoom effect is in fact a big sprite which is scaled. Additionally to this moveable sprites the NEOGEO does support a fix layer which is a layer where tiles can be aligned in a fixed grid. This layer is often used for game status informations like available credits and on-screen game informations like health, time and so on.
1.3 Operation
The NEOGEO has two joystick inputs with both stick having A, B, C, D, START, SELECT (COIN), and Direction Stick. 2.6 Sound The sound part of the NEOGEO consists of a Z80 which is running some kind of sound driver. The 2.6 Sound 6 Z80 uses a Yamaha YM2610 for sound output. Through this chip the NEOGEO supports 4-FM synthesis, 7-Digital, 3-PSG and 1-Noise channels. It should be theoretically possible to increase the number of channels by writing a Z80 driver that can mix channels in software (that kind of technique is for e.g. used in GBA sound programming), but maybe this is exactly what the current sound driver are doing. The following table is a list of the different generic sound driver which were used until now:
• AF Sound (v1.0, v1.1, v1.2, v1.3) • Makoto (v2.0a, v3.0, v8.3) • MrPac (v1.5b, v2.0)

  • OS (v1.2, v2.2, v3.5, v6.4, v6.5, v7.3, v8.4, v8.5, v8.7.8, v8.8a, v8.8.7, v8.8.9, v8.8.11)
    • Sound Driver (v0.0, v0.1, v1.0, v1.1, v1.3, v1.6, v1.7, v1.8) 2.7 Other Devices Additionally the NEOGEO has a Memory Card Slot (NGH integrated) and a Battery Backed Serial I/O Calendar Controller (MVS Only). The Memory Card is used for saving the game state and it is even possible to exchange them between the NGH and MVS. The Battery Backed Serial I/O Calendar Controller is used for the MVS only book keeping system

1.4 Overall Memory Map MC68000 8
This is the second ROM bank. My guess is that data structures and variables are stored in this bank, due the fact I never seen the PC reaching this location. Many newer games use heavily bank switching to access this data. It seems that a maximum of 4 banks can be accessed through this address range. Another interesting observation is that the mapped banks have some kind of header. KOF98 and Garou for e.g seemed to save the bank number to 0x200001.

1.5 Graphics System
The Neo-Geo graphics system is like the most of the successful 2D machines tile based, which means that you don’t manipulate VRAM like a framebuffer but you work mainly with refrerences to tiles in ROM. This references are stored in so called maps in VRAM. An entry of the map does not only consists of a reference to the character data in ROM but also consists of some additional attributes like what palette should be used, the position and so on. I want to stress again that no character data is stored in VRAM.
The VRAM is not directly addressable by the CPU, there are three memory mapped I/O registers which are used to manipulate data in VRAM. The addresses used are REG_VRAMLOC (0x3c0000) where the read/write location is set, then the REG_VRAMINC (0x3c0004) where you can set the autoincrement value for reading/writing and finally REG_VRAMRW (0x3c0002) where you can read/write the data in VRAM at the position set at REG_VRAMLOC. After each write or read the REG_VRAMLOC points to the position incremented by REG_VRAMINC.
Note that the VRAM is half-word (16 bit) addressed and not byte addressed like the M68000 memory. The graphics system consists of three main parts, which are the Fix Layer, Sprites and Color Palettes. The first two are stored in VRAM and on board or cartridge ROM, while the Color Palettes are stored at an other memory location which is directly addressable. There is no special background layer. Background layers are made of aligned sprites. The benefit is that you are quite more flexible to use the available memory

Leave a Comment

Your email address will not be published. Required fields are marked *