Emulador Atari 2600 - Stella
Introducció
Instal.lació
https://stella-emu.github.io/development.html $ git clone https://github.com/stella-emu/stella.git $ cd stella $ ./configure $ make $ sudo make install $ stella L'executable està a ''/usr/local/bin/stella'' roms: https://atariage.com/system_items.html?SystemID=2600&ItemTypeID=ROM Els fitxers de configuració estan a: $ ls /home/joan/.config/stella/ cfg nvram state stella.pro stellarc Les opcions que es poden configurar es guarden a: /home/joan/.config/stella/stellarc aquí hi ha el directori on busquem les roms romdir = ~/roms/atari2600/ i el mapejat de les tecles. keymap = 119:0:0:0:0:50:0:55:52:49:25:23:22:59:24:62:63:0:0:60:61:47:0:51:0:0:0: joymap = 119 combomap = 16:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0, $ stella -help stella [options ...] romfile -cfgdir <dir> Directory in which to save Distella config files -exitlauncher <1|0> On exiting a ROM, go back to the ROM launcher $ cp /home/joan/.config/stella/stellarc /home/joan/stellarc $ stella -cfgdir /home/joan/.config/stella $ stella -cfgdir /home/joan no funciona això anterior Linux/Unix $HOME/.stella/stellarc -> no es pot canviar, a no sé que ho toqui dins el codi. A mi el que m'agradaria eś un fitxer de configuració per cada joc, doncs dins el fitxer de configuració hi ha el mapping. $ stella /home/joan/roms/atari2600/Berzerk.bin -> funciona some games need to be 'started' with the Select or Reset button, while others may use the joystick fire button instead. Manuals: http://www.atariage.com/system_items.html?SystemID=2600&ItemTypeID=MANUAL Remapping: https://stella-emu.github.io/docs/index.html#Remapping Configuració per defecte keymap = 119:0:0:0:0:50:0:55:52:49:25:23:22:59:24:62:63:0:0:60:61:47:0:51:0:0:0:48:54:21:53:44:45:46:19:20:26:27:56:57:58:0:101:102:98:18:0:0:0:0:99:0:64:0:100:65:66:67:0:9:10:3:4:5:6:7:8:94:92:93:95:0:0:97:0:0:0:0:0:0:17:16:15:14:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:18:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:113:117:118:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:109:111:0:110:112:108:107:106:105:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 Vaig a canviar el SPACE pel '3' Input settings > UI events keymap = 119:0:0:0:0:50:0:55:52:49:25:23:22:59:24:62:63:0:0:60:61:47:0:51:0:0:0:48:54:21:53:44:45:18:19:20:26:27:56:57:58:0:101:102:98:18:0:0:0:0:99:0:64:0:100:65:66:67:0:9:10:3:4:5:6:7:8:94:92:93:95:0:0:97:0:0:0:0:0:0:17:16:15:14:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:18:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:113:117:118:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:109:111:0:110:112:108:107:106:105:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 Per defecte Ctrl-Q és per sortir de l'emulador. Ara també li associo el botó 0 keymap = 119:0:0:0:0:50:0:55:52:49:25:23:22:59:24:62:63:0:0:60:61:47:0:51:0:0:0:48:54:21:53:44:45:18:19:20:26:27:56:57:96:0:101:102:98:18:0:0:0:0:99:0:64:0:100:65:66:67:0:9:10:3:4:5:6:7:8:94:92:93:95:0:0:97:0:0:0:0:0:0:17:16:15:14:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:18:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:113:117:118:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:109:111:0:110:112:108:107:106:105:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 Efectivament, la informació està aquí, tot i que és difícil d'interpretar. La configuració final per dos jugadors seria: keymap = 119:0:0:0:0:56:57:58:59:60:61:0:0:21:23:22:24:0:0:0:0:0:0:51:0:0:0:0:0:0:0:0:0:44:45:46:47:48:49:0:96:0:101:0:98:18:0:0:0:0:99:0:0:0:100:0:0:67:0:9:10:3:4:5:6:7:8:94:92:93:95:0:0:97:0:0:0:0:0:0:17:16:15:14:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:113:117:118:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:109:111:0:110:112:108:107:106:105:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
A la RPi:
/usr/local/bin/stella
A la RPi no tinc cap interfície gràfica:
$ stella
error: XDG_RUNTIME_DIR not set in the environment.
ERROR: Unable to open SDL window: Could not initialize OpenGL / GLES library
ERROR: Couldn't initialize video subsystem
ERROR: Couldn't create launcher
-video <type> Type is one of the following:
opengl OpenGL acceleration
opengles2 OpenGLES 2 acceleration
opengles OpenGLES 1 acceleration
software Software mode (no acceleration)
https://www.element14.com/community/community/raspberry-pi/blog/2012/10/03/play-atari-2600-on-your-raspberry-pi
Make sure the sound drivers are installed. (ALSA drivers are not installed by default) Enter in: sudo apt-get install alsa-utils and sudo modprobe snd_bcm2835. Permissions may be an issue. So, run Stella using "sudo stella" or add the user to the video group, which gives access to the framebuffer. This is done through: sudo usermod -a -G video pi
sudo usermod -a -G video pi
RPi, s'ha de poder fer des de la consola. Ho vaig veure en un video.
http://www.piplay.org/forum/search?Search=stella Games are slow Are you running from within X-windows? If so, don't. Stella was really slow when I ran it from within X-windows. Booting to terminal (not X), then running Stella fixed the speed problem. https://raspberrypi.stackexchange.com/questions/412/how-can-i-run-stella-atari-emulator-on-the-raspberry-pi?rq=1 I have it running from the console on Debian squeeze and posted about it here: http://raspberry-fool.com/2012/07/atari-2600-emulation/ Sounds like you were doing it right though so not sure where the error came from unless it was due to running it on X before you tried. If you add your user to the video group it gets over the framebuffer permissions problem. Run from the console the emulation is perfect imho. looks and sounds very good on a variety of games I have tried.
Tornem-hi:
https://raspberrypi.stackexchange.com/questions/42628/has-anyone-managed-to-get-sdl-2-3-working-without-x-in-raspbian
I have Raspbian Jessie running on my Pi2. I am currently booting into LXDE. I want to disable X and run my SDL code directly on the framebuffer. Can someone point me to where I can find more information on how to do this?
Link with instructions to build SDL2 (no X) on Pi: https://solarianprogrammer.com/2015/01/22/raspberry-pi-raspbian-getting-started-sdl-2/ you will get hardware accelerated graphics with SDL2
https://solarianprogrammer.com/2015/01/22/raspberry-pi-raspbian-getting-started-sdl-2/
Parteixo d'una SD neta amb Raspbian Jessie. El problema que he de resoldre és instal.lar l'emulador stella i poder-lo executar des de la consola, sense les X. Sembla ser que s'ha d'instal.lar de forma correcta les X. Segons he llegit, sembla ser que la clau està en instal.lar SDL2 deshabilitat OpenGL, utilitzant l'opció ''--disable-video-opengl'' en el ''configure''.
Les primeres proves que havia fet amb stella des de la consola no funcionen (''Error initializing SDL! No available video device''). He instal.lat les X (apt-get install xserver-xorg) i l'escriptori XFCE. Ara stella ja funciona des de les X, però va lent i és inestable. He de recuperar la possibilitat d'executar stella directament des de la consola (directament al framebuffer?)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential libfreeimage-dev libopenal-dev libpango1.0-dev libsndfile-dev libudev-dev libasound2-dev libjpeg8-dev libtiff5-dev libwebp-dev automake
sudo apt-get install build-essential libfreeimage-dev libopenal-dev libpango1.0-dev
libsndfile-dev libudev-dev libasound2-dev libwebp-dev automake
libjpeg-dev
libtiff5-dev
libjpeg8-dev
cd ~
wget https://www.libsdl.org/release/SDL2-2.0.3.tar.gz
tar zxvf SDL2-2.0.3.tar.gz
cd SDL2-2.0.3 && mkdir build && cd build
../configure --host=armv7l-raspberry-linux-gnueabihf --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl
...
Video drivers : dummy opengl_es1 opengl_es2
...
The above options will make sure, SDL 2 is built with the OpenGL ES backend and that any SDL application will run as a full screen application, the windowed mode under X tends to be more buggy on Raspberry Pi. On the plus side, you will be able to launch your application, or game, directly from the text interface without the overhead of running the X server. If you wish you can start your application from LXDE (the default window manager for Raspbian) and the application will run full screen.
make -j 4
sudo make install
Anem a instal.lar la llibreria SDL_image:
cd ~
wget http://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.0.tar.gz
tar zxvf SDL2_image-2.0.0.tar.gz
cd SDL2_image-2.0.0 && mkdir build && cd build
../configure
make -j 4
sudo make install
fitxer sdl2_test.cpp:
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <iostream>
// Manage error messages
void check_error_sdl(bool check, const char* message);
void check_error_sdl_img(bool check, const char* message);
// Load an image from "fname" and return an SDL_Texture with the content of the image
SDL_Texture* load_texture(const char* fname, SDL_Renderer *renderer);
int main(int argc, char** argv) {
// Initialize SDL
check_error_sdl(SDL_Init(SDL_INIT_VIDEO) != 0, "Unable to initialize SDL");
// Create and initialize a 800x600 window
SDL_Window* window = SDL_CreateWindow("Test SDL 2", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
800, 600, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
check_error_sdl(window == nullptr, "Unable to create window");
// Create and initialize a hardware accelerated renderer that will be refreshed in sync with your monitor (at approx. 60 Hz)
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
check_error_sdl(renderer == nullptr, "Unable to create a renderer");
// Set the default renderer color to corn blue
SDL_SetRenderDrawColor(renderer, 100, 149, 237, 255);
// Initialize SDL_img
int flags=IMG_INIT_JPG | IMG_INIT_PNG;
int initted = IMG_Init(flags);
check_error_sdl_img((initted & flags) != flags, "Unable to initialize SDL_image");
// Load the image in a texture
SDL_Texture *texture = load_texture("img_test.png", renderer);
// We need to create a destination rectangle for the image (where we want this to be show) on the renderer area
SDL_Rect dest_rect;
dest_rect.x = 50; dest_rect.y = 50;
dest_rect.w = 337; dest_rect.h = 210;
// Clear the window content (using the default renderer color)
SDL_RenderClear(renderer);
// Copy the texture on the renderer
SDL_RenderCopy(renderer, texture, NULL, &dest_rect);
// Update the window surface (show the renderer)
SDL_RenderPresent(renderer);
// Wait for 10 seconds
SDL_Delay(10000);
// Clear the allocated resources
SDL_DestroyTexture(texture);
IMG_Quit();
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
// In case of error, print the error code and close the application
void check_error_sdl(bool check, const char* message) {
if (check) {
std::cout << message << " " << SDL_GetError() << std::endl;
SDL_Quit();
std::exit(-1);
}
}
// In case of error, print the error code and close the application
void check_error_sdl_img(bool check, const char* message) {
if (check) {
std::cout << message << " " << IMG_GetError() << std::endl;
IMG_Quit();
SDL_Quit();
std::exit(-1);
}
}
// Load an image from "fname" and return an SDL_Texture with the content of the image
SDL_Texture* load_texture(const char* fname, SDL_Renderer *renderer) {
SDL_Surface *image = IMG_Load(fname);
check_error_sdl_img(image == nullptr, "Unable to load image");
SDL_Texture *img_texture = SDL_CreateTextureFromSurface(renderer, image);
check_error_sdl_img(img_texture == nullptr, "Unable to create a texture from the image");
SDL_FreeSurface(image);
return img_texture;
}
g++ -std=c++0x -Wall -pedantic sdl2_test.cpp -o sdl2_test `sdl2-config --cflags --libs` -lSDL2_image
o bé
g++-4.9 -std=c++14 -Wall -pedantic sdl2_test.cpp -o sdl2_test `sdl2-config --cflags --libs` -lSDL2_image
./sdl2_test
Ara ja instal.lo stella i ara ja funciona, directament des de la consola.
L'únic problema és que quan surto de l'emulador, el teclat queda totalment deshabilitat, la qual cosa és molt empipador. És un problema de SDL. La solució és executar sudo kbd_mode -a després de sortir de l'emulador. S'ha de ficar aquesta sentència en el script que crida a l'emulador. Si tinc una finestra SSH també puc executar la sentència, i el teclat torna a funcionar en el teclat enganxat a la RPi.
stella /home/pi/roms/atari2600/berzerk.bin sudo kbd_mode -a
Configuració
S'ha de tenir en compte quins són els interruptors que hi ha en una Atari 2600. D'una banda hi ha el botó de Reset, que seria per començar el joc. Després hi ha dos interruptors per tal de què els jugadors 1 i 2 seleccionin la seva dificultat.
Després hi ha l'interruptor Game Select, doncs representa que en un cartutxo hi poden haver varis jocs, o bé la versió per 1 jugador i la versió per 2 jugadors.
La configuració queda al final de la següent manera:
- Reset: 1
- Game Select: 9 (a Yar's Revenge és necessari per jugar amb dos jugadors)
- P0 Difficult A: 2 (a vegades és necessari aquest botó per començar el joc, com a X-Man)
- P0 Difficult B: 4
- P0 Swap Difficult: 5
- P1 Difficult A: B
- P1 Difficult B: (none)
- P1 Swap Difficult: C
- Pause: 6
- Quit: 0
- joystick P0: left, right, up, down
- Fire P0: 3
- joystick P1: J, L, I, K
- Fire P1: A
I el fitxer stellarc queda de la següent manera:
keymap = 119:0:0:0:0:25:7:12:0:49:25:23:22:21:23:22:24:0:0:0:61:47:0:51:0:0:0:48:54:21:53:10:5:18:6:11:97:0:56:9:96:0:101:102:98:18:0:0:0:0:99:0:64:0:100:65:66:67:0:9:10:3:5:6:0:7:8:94:92:93:95:0:0:97:0:0:0:0:0:0:17:16:15:14:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:18:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:113:117:118:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:109:111:0:110:112:108:107:106:105:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 joymap = 119 combomap = 16:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0
Descàrrega del fitxer complert:
ROMs
Jocs
- http://www.ign.com/articles/2008/08/26/top-10-best-selling-atari-2600-games
- http://www.gamesradar.com/best-atari-2600-games-all-time/3/
- http://www.atarimania.com/top-atari-atari-2600-vcs-_G_2_7.html
3-D Tic-Tac-Toe Activision Decathlon, The Adventure Air Raiders Air-Sea Battle Asteroids Atlantis Basketball BattleZone Beamrider Berzerk Bobby Is Going Home Bowling Boxing Breakout Carnival Casino Centipede Chopper Command Combat Commando Raid Condor Attack Cosmic Ark Custer's Revenge Defender Demon Attack Dig Dug Dodge 'Em Donkey Kong E.T. Enduro Fishing Derby Flash Gordon Football Freeway Frogger Frostbite Galaxian Gorf Grand Prix H.E.R.O. Hard-Head Ice Hockey International Soccer Jawbreaker Joust Jungle Hunt kaboom! Kangaroo Keystone Kapers Krull Laser Gates Mario Bros. MegaMania Missile Command Moon Patrol Mouse Trap Mr. Postman Ms. Pac-Man Night Driver Outlaw Pac Man Pac-Man Pele's Soccer Phoenix Pinball Pitfall! Pitfall!-Pitfall Harry's Jungle Adventure Planet Patrol Pole Position Polo -> és el primer joc fet per una programadora, Carol Shaw (Atari) Pong Popeye Q*bert Raiders of the Lost Ark RealSports Tennis River Raid River Raid II Robot Tank Save Our Ship Seaquest Skiing Smurf Space Invaders Spider Fighter Spy Hunter Subterranea Super Breakout Superman SwordQuest-EarthWorld Taz Tennis Trick Shot Vanguard Venture Video Checkers Video Chess Video Pinball Volleyball Warlords Wizard of Wor X-Man Xenophobe Yars' Revenge Zaxxon
Valoració dels jocs (TBD)
Per jugar als jocs: press f2 then f1 then fire ( what ever button you mapped to it ). I always found it frustrating to get to work, and I just hit f2 and f1 and fire until it started to work. I never really took the time to learn how the atari was intended to work, and some games just woudl not start at all. Its not the emulators its just common atari knowledge ( that of which most of us dont have or remember ). És a dir, el Reset és el START, i el mapejo a '1'. Assingo el '4' al canvi de dificultat del jugador 1 (P0 Swap difficulty), i la 'B' al canvi de dificultat del jugador 2 (P1 Swap difficulty)
creat per Joan Quintana Compte, maig 2017