Recomendação para um emulador Colecovision?

4

Estou pesquisando um emulador para colecovision - um console de jogos domésticos do início dos anos 80.

Eu encontrei dois:

  1. ColEM, que inicia mas não parece carregar os cartuchos
  2. AdamEM, compilado mas não está funcionando (não inicia, dizendo que "Apenas o modo de exibição de 8,16,32 bpp do X é suportado. Eu configurei para 16 através do painel da Nvidia).

Existem outros emuladores amigáveis?

(xmess é muito confuso para minha paciência e eu prefiro um emulador específico).

O que eu tentei:

Se eu tentar compilar o adamEM com svga ("sudo make svga") ele diz:

raffaele@Natty:~/Scrivania/adamem$ sudo make svga
[sudo] password for raffaele: 
make -f Makefile.SVGALib
make[1]: ingresso nella directory "/home/raffaele/Scrivania/adamem"
gcc  -Wall -m486 -O2 -fomit-frame-pointer -DZLIB -DLSB_FIRST -DHAVE_CLOCK -DLINUX_SVGA -DUNIX -DJOYSTICK -DSOUND -DX86_ASM   -c -o ADAMEm.o ADAMEm.c
cc1: error: unrecognized command line option "-m486"
make[1]: *** [ADAMEm.o] Errore 1
make[1]: uscita dalla directory "/home/raffaele/Scrivania/adamem"
make: *** [svga] Errore 2

Quando eu compilo com X ("make x")

raffaele@Natty:~/Scrivania/adamem$ make x
make -f Makefile.X
make[1]: ingresso nella directory "/home/raffaele/Scrivania/adamem"
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o ADAMEm.o ADAMEm.c
ADAMEm.c: In function ‘LoadConfigFile’:
ADAMEm.c:589:18: warning: pointer targets in assignment differ in signedness
ADAMEm.c: In function ‘FixFileNames’:
ADAMEm.c:630:34: warning: statement with no effect
ADAMEm.c: In function ‘main’:
ADAMEm.c:742:2: warning: pointer targets in passing argument 2 of ‘LoadConfigFile’ differ in signedness
ADAMEm.c:575:13: note: expected ‘unsigned char *’ but argument is of type ‘char *’
ADAMEm.c:758:2: warning: pointer targets in passing argument 2 of ‘LoadConfigFile’ differ in signedness
ADAMEm.c:575:13: note: expected ‘unsigned char *’ but argument is of type ‘char *’
ADAMEm.c: In function ‘LoadConfigFile’:
ADAMEm.c:581:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o Coleco.o Coleco.c
Coleco.c: In function ‘GetSnapshotParams’:
Coleco.c:1128:2: warning: pointer targets in passing argument 1 of ‘__builtin_strlen’ differ in signedness
Coleco.c:1128:2: note: expected ‘const char *’ but argument is of type ‘byte *’
Coleco.c:1128:2: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
Coleco.c:1128:2: note: expected ‘const char *’ but argument is of type ‘byte *’
Coleco.c:1128:2: warning: pointer targets in passing argument 1 of ‘__builtin_strlen’ differ in signedness
Coleco.c:1128:2: note: expected ‘const char *’ but argument is of type ‘byte *’
Coleco.c:1128:2: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
Coleco.c:1128:2: note: expected ‘const char *’ but argument is of type ‘byte *’
Coleco.c:1128:2: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
Coleco.c:1128:2: note: expected ‘const char *’ but argument is of type ‘byte *’
Coleco.c:1128:2: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
Coleco.c:1128:2: note: expected ‘const char *’ but argument is of type ‘byte *’
Coleco.c: In function ‘_SaveSnapshotFile’:
Coleco.c:1254:2: warning: pointer targets in passing argument 1 of ‘strcpy’ differ in signedness
/usr/include/bits/string3.h:103:1: note: expected ‘char * __restrict__’ but argument is of type ‘byte *’
Coleco.c:1259:3: warning: pointer targets in passing argument 1 of ‘strcpy’ differ in signedness
/usr/include/bits/string3.h:103:1: note: expected ‘char * __restrict__’ but argument is of type ‘byte *’
Coleco.c:1265:3: warning: pointer targets in passing argument 1 of ‘strcpy’ differ in signedness
/usr/include/bits/string3.h:103:1: note: expected ‘char * __restrict__’ but argument is of type ‘byte *’
Coleco.c: In function ‘StartColeco’:
Coleco.c:1496:6: warning: suggest explicit braces to avoid ambiguous ‘else’
Coleco.c: In function ‘OptionsDialogue’:
Coleco.c:2638:9: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
Coleco.c: In function ‘CheckGZ’:
Coleco.c:869:9: warning: ignoring return value of ‘tmpnam’, declared with attribute warn_unused_result
Coleco.c: In function ‘StartColeco’:
Coleco.c:1127:5: warning: array subscript is above array bounds
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o Z80.o Z80.c
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o DSP.o DSP.c
In file included from DSP.c:24:0:
Mixer.h: In function ‘voiceon’:
Mixer.h:198:30: warning: cast from pointer to integer of different size
Mixer.h:198:41: warning: cast from pointer to integer of different size
Mixer.h:198:56: warning: cast from pointer to integer of different size
Mixer.h: In function ‘_mix_some_samples’:
Mixer.h:298:11: warning: suggest explicit braces to avoid ambiguous ‘else’
Mixer.h:322:11: warning: suggest explicit braces to avoid ambiguous ‘else’
Mixer.h:353:11: warning: suggest explicit braces to avoid ambiguous ‘else’
Mixer.h:378:11: warning: suggest explicit braces to avoid ambiguous ‘else’
Mixer.h:277:6: warning: suggest explicit braces to avoid ambiguous ‘else’
Mixer.h: In function ‘readpipe’:
Mixer.h:522:26: warning: cast to pointer from integer of different size
Mixer.h:522:51: warning: cast to pointer from integer of different size
Mixer.h:523:15: warning: cast to pointer from integer of different size
DSP.c: In function ‘writepipe’:
Mixer.h:101:8: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result
DSP.c: In function ‘SoundMainLoop’:
dev_dsp.h:69:10: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o Sound.o Sound.c
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o X.o X.c
X.c: In function ‘keyb_handler’:
X.c:428:9: warning: suggest explicit braces to avoid ambiguous ‘else’
X.c: In function ‘InitMachine’:
X.c:938:13: warning: pointer targets in assignment differ in signedness
X.c:964:9: warning: pointer targets in passing argument 6 of ‘XCreateImage’ differ in signedness
/usr/include/X11/Xlib.h:1449:16: note: expected ‘char *’ but argument is of type ‘byte *’
In file included from X.c:1432:0:
Common.h: In function ‘BigSprite’:
Common.h:58:5: warning: suggest explicit braces to avoid ambiguous ‘else’
Common.h: In function ‘Sprite’:
Common.h:86:5: warning: suggest explicit braces to avoid ambiguous ‘else’
X.c: In function ‘CalibrateJoystick’:
X.c:677:9: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
X.c:678:9: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o Z80Debug.o Z80Debug.c
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o Bitmap.o Bitmap.c
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o Unix.o Unix.c
gcc  -s -Wl,-Map,adamem.map -L/usr/X11R6/lib \
              -o adamem ADAMEm.o Coleco.o Z80.o DSP.o Sound.o X.o Z80Debug.o Bitmap.o Unix.o -lXext -lX11 -lz
Coleco.o: In function 'CheckGZ':
Coleco.c:(.text+0x1e8a): warning: the use of 'tmpnam' is dangerous, better use 'mkstemp'
rm -f cvem
ln -s adamem cvem
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o keys.o keys.c
gcc  -s -o keys keys.o
gcc  -Wall -O2 -fomit-frame-pointer -DLSB_FIRST -DUNIX_X -DUNIX -DMITSHM -DHAVE_CLOCK -DSOUND -DZLIB   -c -o makedata.o makedata.c
makedata.c: In function ‘main’:
makedata.c:69:3: warning: pointer targets in passing argument 3 of ‘LoadSam’ differ in signedness
makedata.c:28:12: note: expected ‘int *’ but argument is of type ‘unsigned int *’
makedata.c:74:10: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result
makedata.c: In function ‘LoadSam’:
makedata.c:50:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result
gcc  -s -o makedata makedata.o -lz
makedata
make[1]: makedata: comando non trovato
make[1]: *** [adamem.snd] Errore 127
make[1]: uscita dalla directory "/home/raffaele/Scrivania/adamem"
make: *** [x] Errore 2

Quando tento iniciar o emulador (./adamem ou ./cvem) reclama com:

Initialising Unix/X drivers...
Opening display... FAILED - Only 8,16 and 32 bpp displays are supported
    
por Hadden 02.09.2011 / 05:19

1 resposta

2

Para mim, os binários do ubuntu do site de download ColEm funcionam bem - no entanto, você precisará usar um truque para fazê-lo funcionar com sucesso. Também encontrei algumas ótimas ROMs retro que funcionam muito bem com esse emulador.

Alguns passos a seguir:

  1. Faça o download do emulador ColEm
  2. Extraia os arquivos em uma subpasta - por exemplo, ~/Downloads/colem
  3. Faça o download de algumas ROMs compatíveis e descompacte-as na pasta colem acima
  4. Verifique se você tem os utilitários pulseaudio instalados:

sudo apt-get install pulseaudio-utils

Agora, para iniciar o emulador com uma ROM específica, você usa a sintaxe

padsp ./colem32 <rom name>

por exemplo: padsp ./colem32 Galaxian.rom

    
por fossfreedom 02.09.2011 / 21:27