Update file pickers to allow .smc
This commit is contained in:
parent
6c0c04fe21
commit
82a25de4ea
|
@ -1,10 +1,14 @@
|
||||||
|
var _snes_types = "application/vnd.nintendo.snes.rom,.sfc,.smc,.srm";
|
||||||
|
var _psx_types = "application/x-cd-image,application/x-iso9660-image,.bin,.iso";
|
||||||
|
var _gba_types = "application/x-gba-rom,.gba";
|
||||||
|
var _accepted_types = _snes_types+","+_psx_types+","+_gba_types;
|
||||||
var _FilePicker = {};
|
var _FilePicker = {};
|
||||||
var _FilePickerData = {};
|
var _FilePickerData = {};
|
||||||
_FilePicker.upload = function(gd_callback) {
|
_FilePicker.upload = function(gd_callback) {
|
||||||
// canceled = true;
|
// canceled = true;
|
||||||
var input = document.createElement('INPUT');
|
var input = document.createElement('INPUT');
|
||||||
input.setAttribute("type", "file");
|
input.setAttribute("type", "file");
|
||||||
input.setAttribute("accept", ".sfc,.srm,.gba,.bin,.iso");
|
input.setAttribute("accept", _accepted_types);
|
||||||
input.setAttribute("multiple", "");
|
input.setAttribute("multiple", "");
|
||||||
input.click();
|
input.click();
|
||||||
input.addEventListener('change', event => {
|
input.addEventListener('change', event => {
|
||||||
|
|
19
globals.gd
19
globals.gd
|
@ -2,6 +2,25 @@ extends Node
|
||||||
|
|
||||||
const INDEX_FORMAT := Image.FORMAT_L8
|
const INDEX_FORMAT := Image.FORMAT_L8
|
||||||
|
|
||||||
|
const FOLDER_ICON := preload('res://theme/icons/file_folder.tres')
|
||||||
|
const ALLOWED_EXTS := PoolStringArray(['bin', 'iso', 'sfc', 'smc', 'srm', 'gba'])
|
||||||
|
const CD_EXTS := PoolStringArray(['bin', 'iso']) # If you have a weird disc image format, you can mount it yourself, leave me out of it
|
||||||
|
const EXT_ICONS := {
|
||||||
|
'bin': preload('res://theme/icons/file_binary.tres'),
|
||||||
|
'iso': preload('res://theme/icons/file_disc.tres'),
|
||||||
|
'sfc': preload('res://theme/icons/file_cart.tres'),
|
||||||
|
'smc': preload('res://theme/icons/file_cart.tres'),
|
||||||
|
'gba': preload('res://theme/icons/file_cart.tres'),
|
||||||
|
}
|
||||||
|
const TYPE_DESCS := {
|
||||||
|
'bin': 'Binary',
|
||||||
|
'iso': 'CD-ROM Image',
|
||||||
|
'sfc': 'SNES ROM',
|
||||||
|
'smc': 'SNES ROM',
|
||||||
|
'gba': 'GBA ROM',
|
||||||
|
'srm': 'SNES Savefile'
|
||||||
|
}
|
||||||
|
|
||||||
var time = 0.0
|
var time = 0.0
|
||||||
var time_mult = 1.0
|
var time_mult = 1.0
|
||||||
|
|
||||||
|
|
|
@ -3,22 +3,11 @@ extends PanelContainer
|
||||||
|
|
||||||
signal continue_pressed
|
signal continue_pressed
|
||||||
|
|
||||||
const FOLDER_ICON := preload('res://theme/icons/file_folder.tres')
|
const FOLDER_ICON := globals.FOLDER_ICON
|
||||||
const ALLOWED_EXTS := PoolStringArray(['bin', 'iso', 'sfc', 'srm', 'gba'])
|
const ALLOWED_EXTS := globals.ALLOWED_EXTS
|
||||||
const CD_EXTS := PoolStringArray(['bin', 'iso']) # If you have a weird disc image format, you can mount it yourself, leave me out of it
|
const CD_EXTS := globals.CD_EXTS
|
||||||
var EXT_ICONS := { # Dicts can't be const
|
const EXT_ICONS := globals.EXT_ICONS
|
||||||
'bin': preload('res://theme/icons/file_binary.tres'),
|
const TYPE_DESCS := globals.TYPE_DESCS
|
||||||
'iso': preload('res://theme/icons/file_disc.tres'),
|
|
||||||
'sfc': preload('res://theme/icons/file_cart.tres'),
|
|
||||||
'gba': preload('res://theme/icons/file_cart.tres'),
|
|
||||||
}
|
|
||||||
var TYPE_DESCS := { # Dicts can't be const
|
|
||||||
'bin': 'Binary',
|
|
||||||
'iso': 'CD-ROM Image',
|
|
||||||
'sfc': 'SNES ROM',
|
|
||||||
'gba': 'GBA ROM',
|
|
||||||
'srm': 'SNES Savefile'
|
|
||||||
}
|
|
||||||
|
|
||||||
var cached_cd_bin_paths := {}
|
var cached_cd_bin_paths := {}
|
||||||
var dir := Directory.new()
|
var dir := Directory.new()
|
||||||
|
@ -119,7 +108,7 @@ func load_file(entry: String):
|
||||||
var filename := dir.get_current_dir() + '/' + entry
|
var filename := dir.get_current_dir() + '/' + entry
|
||||||
var ext = entry.rsplit('.', true, 1)[1].to_lower()
|
var ext = entry.rsplit('.', true, 1)[1].to_lower()
|
||||||
match ext:
|
match ext:
|
||||||
'sfc':
|
'sfc', 'smc':
|
||||||
RomLoader.load_snes_rom(filename)
|
RomLoader.load_snes_rom(filename)
|
||||||
|
|
||||||
func activate_entry(entry: String, _index: int = -1):
|
func activate_entry(entry: String, _index: int = -1):
|
||||||
|
@ -179,7 +168,7 @@ func view_entry(entry: String, index: int = -1):
|
||||||
lbl_filesize_content.text = human_size
|
lbl_filesize_content.text = human_size
|
||||||
lbl_fileinfo_header.modulate = active_modulate_color if prodcode else inactive_modulate_color
|
lbl_fileinfo_header.modulate = active_modulate_color if prodcode else inactive_modulate_color
|
||||||
lbl_fileinfo_content.text = prodcode
|
lbl_fileinfo_content.text = prodcode
|
||||||
btn_ok.disabled = (ext != 'sfc') # Only allow opening snes roms for now
|
btn_ok.disabled = (ext != 'sfc' and ext != 'smc') # Only allow opening snes roms for now
|
||||||
|
|
||||||
func init_labels():
|
func init_labels():
|
||||||
lbl_filename_header.modulate = inactive_modulate_color
|
lbl_filename_header.modulate = inactive_modulate_color
|
||||||
|
|
|
@ -3,22 +3,11 @@ extends PanelContainer
|
||||||
|
|
||||||
signal continue_pressed
|
signal continue_pressed
|
||||||
|
|
||||||
const FOLDER_ICON := preload('res://theme/icons/file_folder.tres')
|
const FOLDER_ICON := globals.FOLDER_ICON
|
||||||
const ALLOWED_EXTS := PoolStringArray(['bin', 'iso', 'sfc', 'srm', 'gba'])
|
const ALLOWED_EXTS := globals.ALLOWED_EXTS
|
||||||
const CD_EXTS := PoolStringArray(['bin', 'iso']) # If you have a weird disc image format, you can mount it yourself, leave me out of it
|
const CD_EXTS := globals.CD_EXTS
|
||||||
var EXT_ICONS := { # Dicts can't be const
|
const EXT_ICONS := globals.EXT_ICONS
|
||||||
'bin': preload('res://theme/icons/file_binary.tres'),
|
const TYPE_DESCS := globals.TYPE_DESCS
|
||||||
'iso': preload('res://theme/icons/file_disc.tres'),
|
|
||||||
'sfc': preload('res://theme/icons/file_cart.tres'),
|
|
||||||
'gba': preload('res://theme/icons/file_cart.tres'),
|
|
||||||
}
|
|
||||||
var TYPE_DESCS := { # Dicts can't be const
|
|
||||||
'bin': 'Binary',
|
|
||||||
'iso': 'CD-ROM Image',
|
|
||||||
'sfc': 'SNES ROM',
|
|
||||||
'gba': 'GBA ROM',
|
|
||||||
'srm': 'SNES Savefile'
|
|
||||||
}
|
|
||||||
|
|
||||||
var uploaded_files := {} # filename: data
|
var uploaded_files := {} # filename: data
|
||||||
var uploaded_files_types := {} # filename: type
|
var uploaded_files_types := {} # filename: type
|
||||||
|
@ -78,7 +67,7 @@ func update_view():
|
||||||
func load_file(entry: String):
|
func load_file(entry: String):
|
||||||
var ext = entry.rsplit('.', true, 1)[1].to_lower()
|
var ext = entry.rsplit('.', true, 1)[1].to_lower()
|
||||||
match ext:
|
match ext:
|
||||||
'sfc':
|
'sfc', 'smc':
|
||||||
RomLoader.load_snes_rom_from_bytes(uploaded_files[entry])
|
RomLoader.load_snes_rom_from_bytes(uploaded_files[entry])
|
||||||
|
|
||||||
func activate_entry(entry: String, _index: int = -1):
|
func activate_entry(entry: String, _index: int = -1):
|
||||||
|
@ -119,7 +108,7 @@ func view_entry(entry: String, _index: int = -1):
|
||||||
lbl_filesize_content.text = human_size
|
lbl_filesize_content.text = human_size
|
||||||
lbl_fileinfo_header.modulate = active_modulate_color if prodcode else inactive_modulate_color
|
lbl_fileinfo_header.modulate = active_modulate_color if prodcode else inactive_modulate_color
|
||||||
lbl_fileinfo_content.text = prodcode
|
lbl_fileinfo_content.text = prodcode
|
||||||
btn_ok.disabled = (ext != 'sfc') # Only allow opening snes roms for now
|
btn_ok.disabled = (ext != 'sfc' and ext != 'smc') # Only allow opening snes roms for now
|
||||||
|
|
||||||
func init_labels():
|
func init_labels():
|
||||||
lbl_filename_header.modulate = inactive_modulate_color
|
lbl_filename_header.modulate = inactive_modulate_color
|
||||||
|
|
Loading…
Reference in New Issue