ScriptedAmigaEmulator/sae/config.js
Rupert Hausberger 0c5b018866 update 0.7.0
2012-12-22 19:39:33 +01:00

188 lines
4 KiB
JavaScript

/**************************************************************************
* SAE - Scripted Amiga Emulator
*
* https://github.com/naTmeg/ScriptedAmigaEmulator
*
* ©2012 Rupert Hausberger
* Commercial use is prohibited.
*
**************************************************************************/
function Config() {
this.init = false;
this.cpu = {
model: 68000,
speed: 0, /* 0 if cpu.exact */
exact: false,
compatible: true
};
this.blitter = {
exact: false, /* do not change */
immediate: false, /* false if blitter.exact */
waiting: 1 /* 0 if cpu.exact or blitter.immediate */
};
this.chipset = {
type: 0,
agnus: 0,
agnus_rev: 0,
denise: 0,
paula: 0,
colLevel: 0
};
this.ram = {
chip: {
size: 0
},
slow: {
size: 0,
},
fast: {
size: 0,
}
};
this.rom = {
size: 0,
data: null
};
this.ext = {
addr: 0,
size: 0,
data: null
};
this.floppy = {
drive:[{
type: 0,
name: null,
data: null
}, {
type: 0,
name: null,
data: null
}, {
type: 0,
name: null,
data: null
}, {
type: 0,
name: null,
data: null
}],
speed:0
};
this.video = {
enabled: false,
scale: false,
ntsc: false,
skip: false,
id: ''
};
this.audio = {
enabled: false,
mode:0,
channels: 0,
rate: 0
};
this.ports = [{
type: 0,
move: 0,
fire: [0,0]
}, {
type: 0,
move: 0,
fire: [0,0]
}];
this.keyboard = {
enabled: false,
mapShift: false
};
this.serial = {
enabled: false
};
this.rtc = {
type: 0
};
this.hooks = {
error: null,
power_led: null,
floppy_motor: null,
floppy_step: null,
fps: null,
cpu: null
};
}
function configSetDefaults(c) {
c.init = true;
c.cpu.speed = SAEV_Config_CPU_Speed_Original;
c.chipset.type = SAEV_Config_Chipset_Type_OCS;
if (c.chipset.type == SAEV_Config_Chipset_Type_OCS) {
c.chipset.agnus = c.video.ntsc ? AGNUS_8370 : AGNUS_8371;
c.chipset.agnus_rev = 0;
c.chipset.denise = DENISE_8362;
} else if (c.chipset.type == SAEV_Config_Chipset_Type_ECS) {
c.chipset.agnus = AGNUS_8372;
c.chipset.agnus_rev = 5;
c.chipset.denise = DENISE_8373;
}
c.chipset.paula = PAULA_8364;
c.chipset.colLevel = SAEV_Config_Chipset_ColLevel_None;
c.ram.chip.size = SAEV_Config_RAM_Chip_Size_512K;
c.ram.slow.size = SAEV_Config_RAM_Slow_Size_512K;
c.ram.fast.size = SAEV_Config_RAM_Fast_Size_512K;
c.rom.size = SAEV_Config_ROM_Size_None;
c.rom.data = null;
c.ext.addr = SAEV_Config_EXT_Addr_E0;
c.ext.size = SAEV_Config_EXT_Size_None;
c.ext.data = null;
c.floppy.drive[0].type = SAEV_Config_Floppy_Type_35_DD;
c.floppy.drive[0].name = null;
c.floppy.drive[0].data = null;
c.floppy.drive[1].type = SAEV_Config_Floppy_Type_35_DD;
c.floppy.drive[1].name = null;
c.floppy.drive[1].data = null;
c.floppy.drive[2].type = SAEV_Config_Floppy_Type_None;
c.floppy.drive[2].name = null;
c.floppy.drive[2].data = null;
c.floppy.drive[3].type = SAEV_Config_Floppy_Type_None;
c.floppy.drive[3].name = null;
c.floppy.drive[3].data = null;
c.floppy.speed = SAEV_Config_Floppy_Speed_Original;
c.video.enabled = true;
c.video.scale = false;
c.video.ntsc = false;
c.video.skip = true;
c.video.id = 'video';
c.audio.enabled = true;
c.audio.mode = SAEV_Config_Audio_Mode_Play_Best;
c.audio.channels = SAEV_Config_Audio_Channels_Stereo;
c.audio.rate = SAEV_Config_Audio_Rate_44100;
c.ports[0].type = SAEV_Config_Ports_Type_Mouse;
c.ports[0].move = SAEV_Config_Ports_Move_WASD;
c.ports[0].fire[0] = 49;
c.ports[0].fire[1] = 50;
c.ports[1].type = SAEV_Config_Ports_Type_Joy1;
c.ports[1].move = SAEV_Config_Ports_Move_Arrows;
c.ports[1].fire[0] = 16;
c.ports[1].fire[1] = 17;
c.keyboard.enabled = true;
c.keyboard.mapShift = false;
c.rtc.type = 1 ? SAEV_Config_RTC_Type_MSM6242B : SAEV_Config_RTC_Type_RF5C01A;
c.hooks.error = function(err, msg) {}
c.hooks.power_led = function(on) {}
c.hooks.floppy_motor = function(unit, on) {}
c.hooks.floppy_step = function(unit, cyl) {}
c.hooks.fps = function(fps) {}
c.hooks.cpu = function(usage) {}
}