2023-07-25 16:33:45 +09:30
|
|
|
extends Node
|
|
|
|
|
2023-08-01 23:22:31 +09:30
|
|
|
const loader_cd_image := preload('res://scripts/loaders/cd/image.gd')
|
|
|
|
var psx_productcode_regex := RegEx.new()
|
|
|
|
const psx_ff5_productcodes = [
|
|
|
|
'SLUS_008.79', # US Anthology, both 1.0 and 1.1
|
|
|
|
'SCES_138.40', # EU/Aus Anthology
|
|
|
|
'SLPM_860.81', # JP
|
|
|
|
'SCPS_452.14', # JP original, untested
|
|
|
|
]
|
|
|
|
|
2023-07-25 16:33:45 +09:30
|
|
|
var ROM_filename := 'FF5_SCC_WepTweaks_Inus_Dash.sfc' # 'Final Fantasy V (Japan).sfc'
|
|
|
|
var GBA_filename := '2564 - Final Fantasy V Advance (U)(Independent).gba'
|
|
|
|
|
|
|
|
var rom_snes := File.new()
|
2023-07-26 21:52:54 +09:30
|
|
|
var thread := Thread.new()
|
2023-07-25 16:33:45 +09:30
|
|
|
|
|
|
|
func load_snes_rom(filename: String):
|
|
|
|
var error := rom_snes.open(filename, File.READ)
|
|
|
|
if error == OK:
|
|
|
|
SpriteLoader.load_snes_rom(rom_snes)
|
2023-07-27 19:38:53 +09:30
|
|
|
MapLoader.load_snes_rom(rom_snes)
|
2023-07-26 21:52:54 +09:30
|
|
|
var _thread_error = thread.start(SoundLoader, 'parse_rom', rom_snes)
|
2023-07-25 16:33:45 +09:30
|
|
|
|
2023-08-01 23:22:31 +09:30
|
|
|
func load_psx_folder(_dirname: String):
|
|
|
|
pass
|
|
|
|
|
|
|
|
func load_psx_image(filename: String):
|
|
|
|
# While it would technically be possible to load everything with no temporary files,
|
|
|
|
# It is more convenient to unpack the small files we care about to the user:// directory
|
|
|
|
var rom_psx := File.new()
|
|
|
|
var error := rom_psx.open(filename, File.READ)
|
|
|
|
if error == OK:
|
|
|
|
var cd := loader_cd_image.new(rom_psx)
|
|
|
|
for key in cd.directory:
|
|
|
|
var s = key.trim_prefix('./')
|
|
|
|
var re_match := psx_productcode_regex.search(s)
|
|
|
|
if re_match:
|
|
|
|
print(re_match.get_string(0))
|
|
|
|
print(cd.directory)
|
|
|
|
|
|
|
|
|
2023-07-25 16:33:45 +09:30
|
|
|
func _ready():
|
2023-08-01 23:22:31 +09:30
|
|
|
var _error := psx_productcode_regex.compile('(S[A-Z]{3}_\\d{3}\\.\\d{2});(\\d)')
|
2023-07-25 16:33:45 +09:30
|
|
|
load_snes_rom(ROM_filename)
|
|
|
|
|
2023-07-26 21:52:54 +09:30
|
|
|
func _exit_tree() -> void:
|
|
|
|
thread.wait_to_finish()
|