fixed loading of ELF and ACE wrapped ELF files

This commit is contained in:
JetSetIlly 2024-04-30 16:51:16 +01:00
parent 96ad0797b4
commit ed8f7d6318
3 changed files with 14 additions and 3 deletions

View file

@ -122,6 +122,7 @@ func (mem *aceMemory) setDataMode(out bool) {
func newAceMemory(env *environment.Environment, data []byte, armPrefs *preferences.ARMPreferences) (*aceMemory, error) {
mem := &aceMemory{
env: env,
model: architecture.NewMap(architecture.PlusCart),
}

View file

@ -26,6 +26,7 @@ import (
"github.com/jetsetilly/gopher2600/hardware/memory/cartridge/ace"
"github.com/jetsetilly/gopher2600/hardware/memory/cartridge/cdf"
"github.com/jetsetilly/gopher2600/hardware/memory/cartridge/dpcplus"
"github.com/jetsetilly/gopher2600/hardware/memory/cartridge/elf"
"github.com/jetsetilly/gopher2600/hardware/memory/cartridge/mapper"
"github.com/jetsetilly/gopher2600/hardware/memory/cartridge/moviecart"
"github.com/jetsetilly/gopher2600/hardware/memory/cartridge/plusrom"
@ -294,8 +295,6 @@ func (cart *Cartridge) Attach(cartload cartridgeloader.Loader) error {
cart.mapper, err = newSuperbank(cart.env, cartload)
case "WD":
cart.mapper, err = newWicksteadDesign(cart.env, cartload)
case "ACE":
cart.mapper, err = ace.NewAce(cart.env, cartload)
case "DPC":
cart.mapper, err = newDPC(cart.env, cartload)
case "DPC+":
@ -314,6 +313,15 @@ func (cart *Cartridge) Attach(cartload cartridgeloader.Loader) error {
case "MVC":
cart.mapper, err = moviecart.NewMoviecart(cart.env, cartload)
case "ACE":
cart.mapper, err = ace.NewAce(cart.env, cartload)
case "ACE_wrapped_ELF":
cart.mapper, err = elf.NewElf(cart.env, cartload, true)
case "ELF":
cart.mapper, err = elf.NewElf(cart.env, cartload, false)
}
if err != nil {
return fmt.Errorf("cartridge: %w", err)

View file

@ -382,7 +382,9 @@ func (cart *Cartridge) fingerprint(cartload cartridgeloader.Loader) (string, err
}
if ok, wrappedElf := fingerprintAce(cartload); ok {
_ = wrappedElf
if wrappedElf {
return "ACE_wrapped_ELF", nil
}
return "ACE", nil
}