cercasi semiesperto linguaggio C per piccolo progetto WINUAE
Inviato: 17/09/2011, 15:13
Sto cercando di realizzare un set completo dei kickstart e cartridge varie riconosciute dall'ultima versione del WINUAE.
Forse alcuni di voi non lo sapranno, ma all'interno del codice del WINUAE c'è una elenco dei file riconosciuti (completo di CRC32, SHA1 e SIZE).
Il file dove si trovano le informazioni è questo: https://github.com/tonioni/WinUAE/blob/master/rommgr.cpp
io mi sto basando sull'ultima versione del file disponibile (2.3.20 beta 1 del 6 marzo 2011).
ho recuperato quasi tutti i file indicati nel file (sono 124) e mi serve un aiuto per terminare la collezione (e poterla caricare nel Wiki)
all'appello mancano 3 file che si possono ottenere modificando altri file della raccolta (sto cercando di capire come):
- Freezer: Action Replay Mk III v3.09 EVEN
- Freezer: Action Replay Mk III v3.09 ODD
- CD32 ROM (KS + extended) REAL DUMP
un file che in realtà è solo un segnaposto perchè nessuno a ancora dumpato la rom:
- A4091 SCSI boot ROM
e due file che in realtà io ho, solo che sono criptati (li ho presi da amiga forever) e vorrei rendere disponibili le versioni decriptate i cui CRC32 sono riportati nel file:
- CD32 MPEG Cartridge ROM
- The Diagnostic 2.0 (Logica)
l'aiuto a qualcuno che sappia pasticciare un pò con il C è questo: realizzare un programmino che prena in input il file criptato e la chiave di decriptazione (che io ho) e in output fornisca il file decriptato.
l'algoritmo di decriptazione è presente nel file che ho linkato sopra, all'interno delle funzioni:
int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size
static int decode_rekick_rom_do (uae_u8 *mem, int size, int real_size)
int decode_rom (uae_u8 *mem, int size, int mode, int real_size)
qualcuno vuol darmi una mano? per ogni ulteriori informazione per risolvere questo problema chiedete pure, negli ultimi giorni sono diventato molto esperto di kickstart (per favore però, solo domande inerenti ai modi per completare il romset o decriptare le rom, niente richieste di download o simili)
questa sotto (spero si riesca a vedere sul forum, perchè è presa da un file Excel che ho realizzato) e la lista delle rom riconosciute da WinUAE
Forse alcuni di voi non lo sapranno, ma all'interno del codice del WINUAE c'è una elenco dei file riconosciuti (completo di CRC32, SHA1 e SIZE).
Il file dove si trovano le informazioni è questo: https://github.com/tonioni/WinUAE/blob/master/rommgr.cpp
io mi sto basando sull'ultima versione del file disponibile (2.3.20 beta 1 del 6 marzo 2011).
ho recuperato quasi tutti i file indicati nel file (sono 124) e mi serve un aiuto per terminare la collezione (e poterla caricare nel Wiki)
all'appello mancano 3 file che si possono ottenere modificando altri file della raccolta (sto cercando di capire come):
- Freezer: Action Replay Mk III v3.09 EVEN
- Freezer: Action Replay Mk III v3.09 ODD
- CD32 ROM (KS + extended) REAL DUMP
un file che in realtà è solo un segnaposto perchè nessuno a ancora dumpato la rom:
- A4091 SCSI boot ROM
e due file che in realtà io ho, solo che sono criptati (li ho presi da amiga forever) e vorrei rendere disponibili le versioni decriptate i cui CRC32 sono riportati nel file:
- CD32 MPEG Cartridge ROM
- The Diagnostic 2.0 (Logica)
l'aiuto a qualcuno che sappia pasticciare un pò con il C è questo: realizzare un programmino che prena in input il file criptato e la chiave di decriptazione (che io ho) e in output fornisca il file decriptato.
l'algoritmo di decriptazione è presente nel file che ho linkato sopra, all'interno delle funzioni:
int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size
Codice: Seleziona tutto
int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size)
{
int cnt, t, i;
for (i = ROM_KEY_NUM - 1; i >= 0; i--) {
uae_u8 sha1[SHA1_SIZE];
struct romdata *rd;
int keysize = keyring[i].size;
uae_u8 *key = keyring[i].key;
if (!key)
continue;
for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) {
mem[cnt] ^= key[t];
if (real_size == cnt + 1)
t = keysize - 1;
}
if ((mem[2] == 0x4e && mem[3] == 0xf9) || (mem[0] == 0x11 && (mem[1] == 0x11 || mem[1] == 0x14))) {
cloanto_rom = 1;
return 1;
}
get_sha1 (mem, size, sha1);
rd = checkromdata (sha1, size, -1);
if (rd) {
if (rd->cloanto)
cloanto_rom = 1;
return 1;
}
if (i == 0)
break;
for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) {
mem[cnt] ^= key[t];
if (real_size == cnt + 1)
t = keysize - 1;
}
}
return 0;
}
Codice: Seleziona tutto
static int decode_rekick_rom_do (uae_u8 *mem, int size, int real_size)
{
uae_u32 d1 = 0xdeadfeed, d0;
int i;
for (i = 0; i < size / 8; i++) {
d0 = ((mem[i * 8 + 0] << 24) | (mem[i * 8 + 1] << 16) | (mem[i * 8 + 2] << 8) | mem[i * 8 + 3]);
d1 = d1 ^ d0;
mem[i * 8 + 0] = d1 >> 24;
mem[i * 8 + 1] = d1 >> 16;
mem[i * 8 + 2] = d1 >> 8;
mem[i * 8 + 3] = d1;
d1 = ((mem[i * 8 + 4] << 24) | (mem[i * 8 + 5] << 16) | (mem[i * 8 + 6] << 8) | mem[i * 8 + 7]);
d0 = d0 ^ d1;
mem[i * 8 + 4] = d0 >> 24;
mem[i * 8 + 5] = d0 >> 16;
mem[i * 8 + 6] = d0 >> 8;
mem[i * 8 + 7] = d0;
}
return 1;
}
Codice: Seleziona tutto
int decode_rom (uae_u8 *mem, int size, int mode, int real_size)
{
if (mode == 1) {
if (!decode_cloanto_rom_do (mem, size, real_size)) {
#ifndef SINGLEFILE
notify_user (NUMSG_NOROMKEY);
#endif
return 0;
}
return 1;
} else if (mode == 2) {
decode_rekick_rom_do (mem, size, real_size);
return 1;
}
return 0;
}
questa sotto (spero si riesca a vedere sul forum, perchè è presa da un file Excel che ho realizzato) e la lista delle rom riconosciute da WinUAE
Codice: Seleziona tutto
ID NAME CHIP LABEL VERSION SIZE ROMTYPE CRC32 NOTE
0 Cloanto Amiga Forever ROM key 2069 KEY 869ae1b1
1 KS ROM v1.0 (A1000)(NTSC) 1 0 1 0 262144 KICK 299790ff
2 KS ROM v1.1 (A1000)(NTSC) 1 1 31 34 262144 KICK d060572a
3 KS ROM v1.1 (A1000)(PAL) 1 1 31 34 262144 KICK ec86dae2
4 KS ROM v1.2 (A1000) 1 2 33 166 262144 KICK 9ed783d0
5 KS ROM v1.2 (A500,A1000,A2000) 1 2 33 180 262144 KICK a6ce1636
6 KS ROM v1.3 (A500,A1000,A2000) 1 3 34 5 262144 KICK c4f0f55f
7 KS ROM v2.04 (A500+) 2 4 37 175 524288 KICK c3bdb240
8 KS ROM v2.05 (A600) 2 5 37 299 524288 KICK 83028fb5
9 KS ROM v2.05 (A600HD) 2 5 37 300 524288 KICK 64466c2a
10 KS ROM v2.05 (A600HD) 2 5 37 350 524288 KICK 43b0df7b
11 KS ROM v3.0 (A1200) 3 0 39 106 524288 KICK 6c9b07d2
11A KS ROM v3.0 (A1200) EVEN 391523-01 3 0 39 106 262144 EVEN c742a412
11B KS ROM v3.0 (A1200) ODD 391524-01 3 0 39 106 262144 ODD d55c6ec6
12 KS ROM v3.0 (A4000) 3 0 39 106 524288 KICK 9e6ac152
12A KS ROM v3.0 (A4000) EVEN 391513-02 3 0 39 106 262144 EVEN 36f64dd0
12B KS ROM v3.0 (A4000) ODD 391514-02 3 0 39 106 262144 ODD 17266a55
13 KS ROM v3.1 (A4000) 3 1 40 70 524288 KICK 2b4566f1
13A KS ROM v3.1 (A4000) EVEN 3 1 40 70 262144 EVEN f9cbecc9
13B KS ROM v3.1 (A4000) ODD 3 1 40 70 262144 ODD f8248355
14 KS ROM v3.1 (A500,A600,A2000) 3 1 40 63 524288 KICK fc24ae0d
15 KS ROM v3.1 (A1200) 3 1 40 68 524288 KICK 1483a091
15A KS ROM v3.1 (A1200) EVEN 391773-01 3 1 40 68 262144 EVEN 08dbf275
15B KS ROM v3.1 (A1200) ODD 391774-01 3 1 40 68 262144 ODD 16c07bf8
16 KS ROM v3.1 (A4000) 3 1 40 68 524288 KICK d6bae334
16A KS ROM v3.1 (A4000) EVEN 3 1 40 68 262144 EVEN b2af34f8
16B KS ROM v3.1 (A4000) ODD 3 1 40 68 262144 ODD e65636a3
17 KS ROM v3.1 (A4000T) 3 1 40 70 524288 KICK 75932c3a
17A KS ROM v3.1 (A4000T) EVEN 391657-01 3 1 40 70 262144 EVEN 0ca94f70
17B KS ROM v3.1 (A4000T) ODD 391658-01 3 1 40 70 262144 ODD dfe03120
18 CD32 KS ROM v3.1 3 1 40 60 524288 KICKCD32 1e62d4a5
19 CD32 extended ROM 3 1 40 60 524288 EXTCD32 87746be2
20 CDTV extended ROM v1.00 1 0 1 0 262144 EXTCDTV 42baa124
20A CDTV extended ROM v1.00 EVEN 252606-01 1 0 1 0 131072 EVEN | 8BIT 791cb14b
20B CDTV extended ROM v1.00 ODD 252607-01 1 0 1 0 131072 ODD | 8BIT accbbc2e
21 CDTV/A570 extended ROM v2.30 2 30 2 30 262144 EXTCDTV 30b54232
21A CDTV/A570 extended ROM v2.30 EVEN 2 30 2 30 131072 EVEN | 8BIT 48e4d74f
21B CDTV/A570 extended ROM v2.30 ODD 2 30 2 30 131072 ODD | 8BIT 8a54f362
22 CDTV extended ROM v2.07 2 7 2 7 262144 EXTCDTV ceae68d2
22A CDTV extended ROM v2.07 EVEN 2 7 2 7 131072 EVEN | 8BIT 36d73cb8
22B CDTV extended ROM v2.07 ODD 2 7 2 7 131072 ODD | 8BIT 6e84dce7
23 CD32 MPEG Cartridge ROM 3 1 40 30 262144 CD32CART c35c37bf In Amiga Forever 2011 with name "amiga-ext-310-cd32-fmv.rom" encrypted (CRC32 57cae845)
24 A1000 bootstrap ROM 65536 KICK 0b1ad2d0
24BIS A1000 bootstrap ROM ALT 8192 KICK 62f11c04
24A A1000 bootstrap ROM ALT EVEN 252179-01 4096 EVEN | 8BIT 42553bc4
24B A1000 bootstrap ROM ALT ODD 252180-01 4096 ODD | 8BIT 8e5b9a37
25 Freezer: Action Replay Mk I v1.50 1 50 1 50 65536 AR d4ce0675 In Tosec with CRC32 f82c4258 - il checksum è calcolato considerato i primi 4 byte come "00" (con questo metodo il SHA1 non risulta corretto)
25A Freezer: Action Replay Mk I v1.50 EVEN 1 50 1 50 32768 EVEN | 8BIT 7fbd6de2
25B Freezer: Action Replay Mk I v1.50 ODD 1 50 1 50 32768 ODD | 8BIT 43018069
26 Freezer: Action Replay Mk II v2.05 2 5 2 5 131072 AR 1287301f In Tosec with CRC32 4051eef8 - il checksum è calcolato considerato i primi 4 byte come "00" (con questo metodo il SHA1 non risulta corretto)
27 Freezer: Action Replay Mk II v2.12 2 12 2 12 131072 AR 804d0361 In Tosec with CRC32 d29bdd86 - il checksum è calcolato considerato i primi 4 byte come "00" (con questo metodo il SHA1 non risulta corretto)
28 Freezer: Action Replay Mk II v2.14 2 14 2 14 131072 AR 49650e4f In Tosec with CRC32 1bb3d0a8 - il checksum è calcolato considerato i primi 4 byte come "00" (con questo metodo il SHA1 non risulta corretto)
29 Freezer: Action Replay Mk III v3.09 3 9 3 9 262144 AR 0ed9b5aa In Tosec with CRC32 2c76df24 - il checksum è calcolato considerato i primi 4 byte come "00" (con questo metodo il SHA1 non risulta corretto)
29A Freezer: Action Replay Mk III v3.09 EVEN 3 9 3 9 131072 EVEN | 8BIT 2b84519f
29B Freezer: Action Replay Mk III v3.09 ODD 3 9 3 9 131072 ODD | 8BIT 1d35bd56
30 Freezer: Action Replay Mk III v3.17 3 17 3 17 262144 AR c8a16406 In Tosec with CRC32 009f7768 - il checksum è calcolato considerato i primi 4 byte come "00" (con questo metodo il SHA1 non risulta corretto)
31 KS ROM v3.1 (A4000)(Cloanto) 3 1 40 68 524288 KICK 43b6dd22
32 KS ROM v1.3 (A3000)(SK) 1 3 34 5 262144 KICK e0f37258
33 Arcadia SportTime Table Hockey ARCADIAGAME
34 Arcadia SportTime Bowling ARCADIAGAME
35 Arcadia World Darts ARCADIAGAME
36 Arcadia Magic Johnson's Fast Break ARCADIAGAME
37 Arcadia Leader Board Golf ARCADIAGAME
38 Arcadia Leader Board Golf (alt) ARCADIAGAME
39 Arcadia Ninja Mission ARCADIAGAME
40 Arcadia Road Wars ARCADIAGAME
41 Arcadia Sidewinder ARCADIAGAME
42 Arcadia Spot ARCADIAGAME
43 Arcadia Space Ranger ARCADIAGAME
44 Arcadia Xenon ARCADIAGAME
45 Arcadia World Trophy Soccer ARCADIAGAME
46 KS ROM v3.X (A4000)(Cloanto) 3 10 45 57 524288 KICK 3ac99edc In Amiga Forever 2011 with name "amiga-os-3x0.rom" encrypted (CRC32 2238b0b4)
47 Freezer: Action Replay 1200 262144 AR 8d760101
48 Cloanto Amiga Forever 2006 ROM key 750 KEY b01c4b56
49 Arcadia OnePlay 2.11 ARCADIABIOS
50 Arcadia TenPlay 2.11 ARCADIABIOS
51 Arcadia OnePlay 3.00 ARCADIABIOS
52 Freezer: Action Replay Mk I v1.00 1 0 1 0 65536 AR 2d921771
52A Freezer: Action Replay Mk I v1.00 EVEN 1 0 1 0 32768 EVEN | 8BIT 82d6eb87
52B Freezer: Action Replay Mk I v1.00 ODD 1 0 1 0 32768 ODD | 8BIT 40ae490c
53 A590/A2091 SCSI boot ROM 6 0 6 0 16384 A2091BOOT 8396cf4e
53A A590/A2091 SCSI boot ROM EVEN 390388-03 6 0 6 0 8192 EVEN | 8BIT b0b8cf24
53B A590/A2091 SCSI boot ROM ODD 390389-03 6 0 6 0 8192 ODD | 8BIT 2e77bbff
54 A590/A2091 SCSI boot ROM 6 6 6 6 16384 A2091BOOT 33e00a7a
54A A590/A2091 SCSI boot ROM EVEN 390722-02 6 6 6 6 8192 EVEN | 8BIT e536bbb2
54B A590/A2091 SCSI boot ROM ODD 390721-02 6 6 6 6 8192 ODD | 8BIT c0871d25
55 A590/A2091 SCSI boot ROM 7 0 7 0 16384 A2091BOOT 714a97a2 In Amiga Forever 2011 with name "amiga-boot-a590.rom" encrypted??? (CRC32 26b640b4)
55A A590/A2091 SCSI boot ROM EVEN 7 0 7 0 8192 EVEN | 8BIT a9ccffed
55B A590/A2091 SCSI boot ROM ODD 7 0 7 0 8192 ODD | 8BIT 2942747a
56 A590/A2091 SCSI Guru boot ROM 6 14 6 14 32768 A2091BOOT 04e52f93
57 A4091 SCSI boot ROM 40 9 40 9 32768 A4091BOOT 00000000
58 A4091 SCSI boot ROM 391592-02 40 13 40 13 32768 A4091BOOT 54cb9e85 In Amiga Forever 2011 with name "amiga-boot-a4091.rom" encrypted??? (CRC32 b9796b2a)
59 KS ROM v1.4 (A3000) 1 4 36 16 524288 KICK bc0ec13f
59A KS ROM v1.4 (A3000) EVEN 390629-02 1 4 36 16 262144 EVEN 58327536
59B KS ROM v1.4 (A3000) ODD 390630-02 1 4 36 16 262144 ODD fe2f7fb9
60 Freezer: Action Cart. Super IV Pro (+ROM v4.3) 4 3 4 3 170368 SUPERIV e668a0be
61 KS ROM v3.1 (A3000) 3 1 40 68 524288 KICK efb239cc
61A KS ROM v3.1 (A3000) EVEN 3 1 40 68 262144 EVEN 286b9a0d
61B KS ROM v3.1 (A3000) ODD 3 1 40 68 262144 ODD 0b8cde6a
62 Freezer: Action Cartridge Super IV Professional SUPERIV ffffffff built-in - Included "ROM" is my hack, easy to use version of Super IV for WinUAE. (It is Super IV image ripped from loader program + relocated to special "safe" location)
63 Freezer: HRTMon v2.33 (built-in) HRTMON ffffffff built-in
64 CD32 ROM (KS + extended) 3 1 40 60 524288 x 2 KICKCD32 | EXTCD32 | CD32 f5d4f3c8 plain CD32 rom
64BIS CD32 ROM (KS + extended) REAL DUMP 391640-03 3 1 40 60 524288 x 2 CD32 a4fbc94a real CD32 rom dump
65 Freezer: X-Power Professional 500 v1.2 1 2 1 2 131072 XPOWER 9e70c231
65A Freezer: X-Power Professional 500 v1.2 EVEN 1 2 1 2 65536 EVEN | SCRAMBLED | 8BIT f98742e4
65B Freezer: X-Power Professional 500 v1.2 ODD 1 2 1 2 65536 ODD | SCRAMBLED | 8BIT dfb9984b
66 AROS KS ROM (built-in) 524288 x 2 KICK ffffffff built-in
67 Freezer: Nordic Power v2.0 2 0 2 0 65536 NORDIC a4db2906
67A Freezer: Nordic Power v2.0 EVEN 2 0 2 0 32768 EVEN | SCRAMBLED | 8BIT b21be46c
67B Freezer: Nordic Power v2.0 ODD 2 0 2 0 32768 ODD | SCRAMBLED | 8BIT 96057aed
68 Freezer: X-Power Professional 500 v1.3 1 2 1 2 131072 XPOWER 31e057f0
68A Freezer: X-Power Professional 500 v1.3 EVEN 1 2 1 2 65536 EVEN | SCRAMBLED | 8BIT 0b2ce0c7
68B Freezer: X-Power Professional 500 v1.3 ODD 1 2 1 2 65536 ODD | SCRAMBLED | 8BIT 34580c35
69 Freezer: Nordic Power v1.5 1 5 1 5 65536 NORDIC 83b4b21c
69A Freezer: Nordic Power v1.5 EVEN 1 5 1 5 32768 EVEN | SCRAMBLED | 8BIT dd207174
69B Freezer: Nordic Power v1.5 ODD 1 5 1 5 32768 ODD | SCRAMBLED | 8BIT 8f93d85d
70 Freezer: Nordic Power v3.0 3 0 3 0 65536 NORDIC 72850aef
70A Freezer: Nordic Power v3.0 EVEN 3 0 3 0 32768 EVEN | SCRAMBLED | 8BIT f3330e1f
70B Freezer: Nordic Power v3.0 ODD 3 0 3 0 32768 ODD | SCRAMBLED | 8BIT ee58e0f9
71 KS ROM v2.04 (A3000) 2 4 37 175 524288 KICK 234a7233
71A KS ROM v2.04 (A3000) EVEN 390629-03 2 4 37 175 262144 EVEN a245dbdf
71B KS ROM v2.04 (A3000) ODD 390630-03 2 4 37 175 262144 ODD 7db1332b
72 The Diagnostic 2.0 (Logica) 2 0 2 0 524288 KICK | SPECIALKICK 8484f426 In Amiga Forever 2011 with CRC32 9c75da4e
73 Cloanto Amiga Forever 2010 ROM key 1544 KEY 8c4dd05c