Commit a1c2897a authored by Chips-fr's avatar Chips-fr
Browse files

Add aros rom as kickstart fallback

parent a19f540a
......@@ -15,6 +15,7 @@ INCFLAGS += -I$(CORE_DIR)/libretro/libco \
OBJS = \
$(EMU)/audio.o \
$(EMU)/aros.rom.o \
$(EMU)/autoconf.o \
$(EMU)/blitfunc.o \
$(EMU)/blittable.o \
......
......@@ -30,3 +30,5 @@ Kickstarts supported in options configuration:
|A500|KS v1.3 rev 34.005|**kick34005.A500**|262 144|82a21c1890cae844b3df741f2762d48d|
|A600|KS v3.1 rev 40.063|**kick40063.A600**|524 288|e40a5dfb3d017ba8779faba30cbd1c8e|
|A1200|KS v3.1 rev 40.068|**kick40068.A1200**|524 288|646773759326fbac3b2311fd8c8793ee|
If kickstart is not present, AROS kickstart replacement will be used.
\ No newline at end of file
This diff is collapsed.
......@@ -26,6 +26,8 @@
#include <android/log.h>
#endif
#include "core-log.h"
#ifdef JIT
/* Set by each memory handler that does not simply access real memory. */
int special_mem;
......@@ -2037,6 +2039,39 @@ static void patch_kick(void)
kickstart_fix_checksum (kickmemory, kickmem_size);
}
extern unsigned char arosrom[];
extern unsigned int arosrom_len;
static int load_kickstart_replacement (void)
{
struct zfile *f;
LOGI("Load aros kickstart replacement.\n");
f = zfile_fopen_data ("aros.gz", arosrom_len, arosrom);
if (!f)
return false;
f = zfile_gunzip (f);
if (!f)
return false;
kickmem_mask = 0x80000 - 1;
kickmem_size = 0x80000;
extendedkickmem_size = 0x80000;
extendedkickmem_type = EXTENDED_ROM_KS;
extendedkickmemory = mapped_malloc (extendedkickmem_size, "rom_e0");
extendedkickmem_bank.baseaddr = extendedkickmemory;
read_kickstart (f, extendedkickmemory, extendedkickmem_size, 0, 1);
extendedkickmem_mask = extendedkickmem_size - 1;
read_kickstart (f, kickmemory, 0x80000, 1, 0);
zfile_fclose (f);
// config without any other fast ram with m68k aros: enable special extra RAM.
if ( currprefs.fastmem_size == 0 &&
currprefs.z3fastmem_size == 0 &&
currprefs.gfxmem_size == 0) {
changed_prefs.fastmem_size = 0x100000;
LOGI("1MB fastmem added for AROS support\n");
}
return 1;
}
static int load_kickstart (void)
{
struct zfile *f;
......@@ -2062,6 +2097,7 @@ static int load_kickstart (void)
}
addkeydir (currprefs.romfile);
if( f == NULL ) { /* still no luck */
return load_kickstart_replacement();
#if defined(AMIGA)||defined(__POS__)
#define USE_UAE_ERSATZ "USE_UAE_ERSATZ"
if( !getenv(USE_UAE_ERSATZ))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment