From: Toni Wilen Date: Fri, 11 Jul 2014 09:20:58 +0000 (+0300) Subject: rom scanner support. X-Git-Tag: 3000~132 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=9eaaa3112f2425c5a407feac14555dfe2d7ef796;p=francis%2Fwinuae.git rom scanner support. --- diff --git a/gfxboard.cpp b/gfxboard.cpp index 3eba35e0..456e42ca 100644 --- a/gfxboard.cpp +++ b/gfxboard.cpp @@ -2073,12 +2073,20 @@ void gfxboard_init_memory (void) ew (0x00, type); if (ISP4()) { + int roms[] = { 91, -1 }; + struct romlist *rl = getromlistbyids (roms); TCHAR path[MAX_DPATH]; fetch_rompath (path, sizeof path / sizeof (TCHAR)); - _tcscat (path, _T("picasso_iv_flash.rom")); - p4rom = read_rom_name (path); - if (!p4rom) - p4rom = read_rom_name (_T("picasso_iv_flash.rom")); + + if (rl) { + p4rom = read_rom (rl->rd); + } + if (!p4rom) { + _tcscat (path, _T("picasso_iv_flash.rom")); + p4rom = read_rom_name (path); + if (!p4rom) + p4rom = read_rom_name (_T("picasso_iv_flash.rom")); + } if (p4rom) { zfile_fread (p4autoconfig, sizeof p4autoconfig, 1, p4rom); copyp4autoconfig (board->z3 ? 192 : 0); diff --git a/include/rommgr.h b/include/rommgr.h index b5928633..f8bb513d 100644 --- a/include/rommgr.h +++ b/include/rommgr.h @@ -1,29 +1,32 @@ extern int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size); -#define ROMTYPE_KICK 0x000001 -#define ROMTYPE_KICKCD32 0x000002 -#define ROMTYPE_EXTCD32 0x000004 -#define ROMTYPE_EXTCDTV 0x000008 -#define ROMTYPE_A2091BOOT 0x000010 -#define ROMTYPE_A4091BOOT 0x000020 -#define ROMTYPE_AR 0x000040 -#define ROMTYPE_SUPERIV 0x000080 -#define ROMTYPE_KEY 0x000100 -#define ROMTYPE_ARCADIABIOS 0x000200 -#define ROMTYPE_ARCADIAGAME 0x000400 -#define ROMTYPE_HRTMON 0x000800 -#define ROMTYPE_NORDIC 0x001000 -#define ROMTYPE_XPOWER 0x002000 -#define ROMTYPE_CD32CART 0x004000 -#define ROMTYPE_SPECIALKICK 0x008000 -#define ROMTYPE_MASK 0x01ffff -#define ROMTYPE_EVEN 0x020000 -#define ROMTYPE_ODD 0x040000 -#define ROMTYPE_8BIT 0x080000 -#define ROMTYPE_BYTESWAP 0x100000 -#define ROMTYPE_CD32 0x200000 -#define ROMTYPE_SCRAMBLED 0x400000 -#define ROMTYPE_NONE 0x800000 +#define ROMTYPE_KICK 0x00000001 +#define ROMTYPE_KICKCD32 0x00000002 +#define ROMTYPE_EXTCD32 0x00000004 +#define ROMTYPE_EXTCDTV 0x00000008 +#define ROMTYPE_A2091BOOT 0x00000010 +#define ROMTYPE_A4091BOOT 0x00000020 +#define ROMTYPE_AR 0x00000040 +#define ROMTYPE_SUPERIV 0x00000080 +#define ROMTYPE_KEY 0x00000100 +#define ROMTYPE_ARCADIABIOS 0x00000200 +#define ROMTYPE_ARCADIAGAME 0x00000400 +#define ROMTYPE_HRTMON 0x00000800 +#define ROMTYPE_NORDIC 0x00001000 +#define ROMTYPE_XPOWER 0x00002000 +#define ROMTYPE_CD32CART 0x00004000 +#define ROMTYPE_SPECIALKICK 0x00008000 +#define ROMTYPE_PIV 0x00010000 +#define ROMTYPE_BLIZ1230 0x00020000 +#define ROMTYPE_BLIZ1240 0x00040000 +#define ROMTYPE_MASK 0x001fffff +#define ROMTYPE_EVEN 0x02000000 +#define ROMTYPE_ODD 0x04000000 +#define ROMTYPE_8BIT 0x08000000 +#define ROMTYPE_BYTESWAP 0x10000000 +#define ROMTYPE_CD32 0x20000000 +#define ROMTYPE_SCRAMBLED 0x40000000 +#define ROMTYPE_NONE 0x80000000 #define ROMTYPE_ALL_KICK (ROMTYPE_KICK | ROMTYPE_KICKCD32 | ROMTYPE_CD32) #define ROMTYPE_ALL_EXT (ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV) diff --git a/rommgr.cpp b/rommgr.cpp index d9c1588e..e1550564 100644 --- a/rommgr.cpp +++ b/rommgr.cpp @@ -93,7 +93,7 @@ struct romdata *getromdatabypath (const TCHAR *path) return NULL; } -#define NEXT_ROM_ID 89 +#define NEXT_ROM_ID 92 static struct romheader romheaders[] = { { _T("Freezer Cartridges"), 1 }, @@ -292,6 +292,14 @@ static struct romdata roms[] = { { _T("A4091 ROM 40.13"), 40, 13, 40, 13, _T("A4091\0"), 32768, 58, 0, 0, ROMTYPE_A4091BOOT, 0, 0, _T("391592-02"), 0x54cb9e85, 0x3CE66919,0xF6FD6797,0x4923A12D,0x91B730F1,0xFFB4A7BA }, + { _T("Blizzard 1230-IV ROM"), 0, 0, 0, 0, _T("B1230\0"), 32768, 89, 0, 0, ROMTYPE_BLIZ1230, 0, 0, NULL, + 0x3078dbdc, 0x4d3e7fd0,0xa1a4c3ae,0xe17c5de3,0xcbe1af03,0x447aff92 }, + { _T("Blizzard 1240/1260 ROM"), 0, 0, 0, 0, _T("B1240\0B1260\0"), 32768, 90, 0, 0, ROMTYPE_BLIZ1240, 0, 0, NULL, + 0xf88ae0f1, 0xf69aca4b,0xb13e3389,0x04676f0c,0x8616f8db,0x074c313d }, + + { _T("Picasso IV ROM"), 7, 4, 7, 4, _T("PIV\0"), 131072, 91, 0, 0, ROMTYPE_PIV, 0, 0, NULL, + 0xa8133e7e, 0xcafafb91,0x6f16b9f3,0xec9b49aa,0x4b40eb4e,0xeceb5b5b }, + { _T("Arcadia OnePlay 2.11"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 49, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 }, { _T("Arcadia TenPlay 2.11"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 50, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 }, { _T("Arcadia TenPlay 2.20"), 0, 0, 0, 0, _T("ARCADIA\0"), 0, 75, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 },