LibreTron requirements proposal: 

After these wonderful initiatives of indie arcade projects like Torontron, Winnitron, Texatron, etc., and from the concern of these three projects are focused on MS-Windows operating system, it seems very needed an alternative that a similar project focused on freedom (from software libre) is very needed.

This means that, a project like this, using, for example, GNU/Linux, would help a project like this can be built without any kind of concern about illegal software, use of abusive and obscure proprietary software and their respective licences, which both can be find stuck inside a very doubtful ethical situation. Issues about attack vulnerabilities (viruses, trojans, worms, etc.) are also an important aspect considered.


 Arcade Design, Controls, etc.: 

As from http://winnitron.ca/developers, the games should be minimally ready to play, and be focused on arcade playing. Consider that all games must be in fullscreen mode, and removing the mouse pointer if it disturbe the game.

Normally, the keyboard (joystick games) or the mouse (trackball games) are used on this kind of indie arcade projects. None were defined, but would be interesting if 4 simultaneous players could be supported.


 Hardware Reference: 

A good reference of ready pc-based arcade hardware can be find at http://www.system16.com/base.php#11, useful for comparing with which level of hardware can be needed for an indie arcade machine:
ArcadeArchitecture CPU-SpeedCoresRAMVideo
Atari MediaGX i486120mhz1??
Taito Wolf i586200mhz1?3dfx Voodoo1
Midway Quicksilver i586333mhz164mb3dfx QuantumObsidian
Midway Graphite i686733mhz1128mb3dfx Voodoo3
Taito Type-X-Zero i6861.6ghz11gbnVidia GeForce-9400M
Konami Bemani PC Type 1 i6862.4ghz1256mbnVidia GeForce-4-MX40
Konami Bemani PC Type 2 i6862.5ghz1512mbATI Radeon X1300
Taito Type-X/X+ i6862.5ghz1256mbATI Radeon9200SE
Sega Lindbergh i6863.0ghz1256mbnVidia GeForce-6
Konami Bemani PC Type 3 amd641.5ghz1512mbATI (unknown)
Taito Type-X2 amd641.8ghz2512mbnVidia GeForce-7900GS, etc.
Sega RingEdge amd641.8ghz11gbnVidia '?'
Sega RingWide amd642.0ghz11gbATI '?'
Konami Bemani PC Type 4 amd642.3ghz21gbATI Radeon HD 2400
Cave PC amd642.6ghz22gb?
Sega Nu - amd643.3ghz24gbnVidia GeForce-GTX650
Winnitron-NL - amd642.8ghz43gbnVidia GeForce-310
Winnitron-PGH amd642.0ghz24gbATI RadeonHD4650
Winnitron-SH amd643.0ghz22gbnVidia Geforce-8600GT

Note that all these hardware above uses i86-based architecture (i586 or amd64 - Intel 64bit is amd64 indeed). Recently, some hardware based on other architectures, like PowerPC, Mips, Arm (like BeagleBoard or RaspberryPi) appeared, and would be interesting using them on a project like this as well.

(Interesting indie arcade machines can also be made using more limited Atmega-based hardware, like Uzebox, but even considering there are boards compatible with Jamma norm available, the development of the games can be more tricky, even a bit more than coding for old 8-bit or 16-bit machines.)

(Some hacklabs are refurbishing old and abandoned hardware, like x86 compatible hardware. Not bad idea if indie arcade machines could be made based on such old hardware could run operating systems like FreeDOS (even considering how fragile to malicious attacks this operative system is), or some relativelly light operating systems like AROS or HaikuOS, or even some light Linux distros like DamnSmallLinux, TinyCore or PuppyLinux. Development tools used could be compilers like FreeBasic, FreePascal, NASM, OpenWatcom, etc.)


 Aspect Ratio and Resolution: 

GNU/Linux is normally very flexible about screen resolutions, based on /etc/X11/xorg.conf configurations, going far beyond the usual 4x3 480p, 600p, 768p and 1200p (see that 1024p, 1280x1024, is 5x4), depending on the video board and monitor used.

Modelines for xorg.conf can be calculated from http://xtiming.sourceforge.net/cgi-bin/xtiming.pl

An example of resolutions can be used on xorg.conf (as 1:1 pixel aspect ratio):
4x3 8x5 16x9 5x4
2560x19202560x16002560x14402560x2048
1920x14401920x12001920x10801920x1536
1600x12001600x10001600x900 1600x1280
1440x10801440x900 1440x810 1440x1152
1280x960 1280x800 1280x720 1280x1024
1024x768 1024x640 1024x576 1024x820
960x720 960x600 960x540 960x768
864x648 864x540 864x486 864x692
800x600 800x500 800x450 800x640
720x540 720x450 720x405 720x576
640x480 640x400 640x360 640x512
512x384 512x320 512x288 512x410
400x300 400x250 400x225 400x320
360x270 360x225 360x202 360x288
320x240 320x200 320x180 320x256
256x192 256x160 256x144 256x204

A more complete list of resolutions can be find at http://pastebin.com/NEfdSD4x

About monitor resolutions, the latest arcade machines (like from Taito, Sega, etc. ), seems to use 16x9 resolutions like 720p, 1080p or 1440p - and a very interesting example of a "custom" machine is Taito's DariusBurst, using 2x 16x9 monitors ( http://www.system16.com/hardware.php?id=903&page=2#19049 )


 Game Development: 

Games can be developed on interpreted or compiled languages.

The most common interpreted platforms are on language interpreters like Python (Pygame, Pyglet, PyOpenGL), sdlBasic, Lua, etc. The advantage of the interpreted platforms is they are architecture independent, and easier to code. There are contest projects about Python game development, like pyweek.org .

Otherwise, a good example of compiled games are those from Kenta Cho or Oohara Yuuma, mostly using C++ language and OpenGL, most of them available from the Debian/Ubuntu repositories. The compatibility with the compiled architecture (binary executable) should be considered.


 Misc: 

this documentation were written based on http://winnitron.ca/developers, at 2012 january 17.


 Links: 

• OpenJamma
• Torontron
• Winnitron
• Picade



_