My First Post
This is a test post, eventually this will appear as a structured website but for now just testing hugo and md format etc.
Foreword⌗
Ikuy is a development framework to make ‘arcade’ games, in an alternative universe the age of the arcades and the games made for them would have continued, Ikuy is from there. An arcade game in Ikuy terms is a combination of bare metal software running on custom hardware designed to do only one job, play a game or a series of similar styled games. During the golden age, arcade games were graphically and sonically better than anything you could play at home. Each arcade game was customized from each companies components, to run that particular game. Whilst economics meant that the later end of the arcade golden age, games run on the same set of custom chips, many still had modifications. Ikuy brings a modern 21st development toolkit towards making games in a similar style, whilst it can be used to make retro games or emulator its not its main purpose. Its trys to extrapolate that arcade style of the late 1980s and 1990s would look like today in the 2020s. To do that it provides tools to combine software and hardware development, provide basic OS and reusable blocks (hard and soft) and documentation and examples. Programmable chips were used by many arcades, GALs and PALs and even early FPGA were commonly used as glue logic. Today FPGAs are big and chip enough that provides us hobbyist with a way to make custom hardware for our games, FPGA have already been used for emulators projects like Mister to produce hardware similar enough to run the actual ROMS from arcades games. However similar to the golden age, we don’t need to everything custom, just as arcades used off the shelf CPUs in most cases, so we can use hard silicon for parts, leaving the FPGA to the fun bits like graphics, sounds and AI.
Hardware⌗
At the heart of most arcades, are several blocks
- CPU(s)
- Graphic Chips
- Sound Chips
- Memory
- Game Code
Note: We call them chips as often, they were actual physical chips but in actual fact that are often just a small part of an actual chip (in FPGA land they are called IP but that a silly name, as in games IP covers everything from fonts to music and everything in between)
A large part of the golden era of arcades used 8 or 16 bits CPUs, often more than one (SEGA loved a 68000 CPU combined with a Z80 sound CPU, this design even made it into the Megadrive/Genesis). The early generation of arcades often used off the shelf graphics chips form companies like TMS but this quickly changed to custom chips designed by each company. Companies like Atari, SEGA and Capcom constantly fought an arms war to have to most amazing looking arcade. The shift to 3D required much more complex chips, that led to specialist outside companies making them. This eventually led to the situation where arcades today are just consoles or PC in a different form factor (though the games are often still more ‘arcade’ than home consoles/PC games). Sound was often a combination of custom and off the shelf chips. Yamaha in particularly appear in many arcades (and consoles) as the leading manufacture of synthesis chips. Memory was originally split between RAM and ROM, unlike the consoles and home computers, arcades could have large ROM sizes. The NEO GEO crossed the streams by being both an arcade and a expensive home console, however the proof it was really an arcade was the cost of the game cartridges, prices 3-4x more than a game for another console was largely down to the massive (for the time) ROM sizes needed for the games. Additionally RAM could be much more specialized for arcades, this increased the bandwidth (awesome) and complexities (not a problem with each game specialized for this bit of hardware however weird). ROMs were sometimes replaced with some other media, that was transfered to large RAM pretending to be ROM (whilst this is mostly a late arcade feature, it was in fact tried through the time line, with cassette loading arcades being a real thing!) Game code for arcades were often very different to what game code looks like today, with custom hardware and usually relatively simple game play needs, it would be much simpler than the complex ’engines’ used today.