Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metroid: Zero Mission (Europe) (Virtual Console) Is Unplayable #187

Open
emariz opened this issue May 26, 2024 · 3 comments
Open

Metroid: Zero Mission (Europe) (Virtual Console) Is Unplayable #187

emariz opened this issue May 26, 2024 · 3 comments

Comments

@emariz
Copy link

emariz commented May 26, 2024

Probably not an issue of Open AGB Firm, just a note to other users: the ROM Metroid: Zero Mission (Europe) (Virtual Console) seems to be unplayable; it halts at a white screen upon load.
The ROM's integrity was verified before testing the different save types, none worked.

Its page at No Intro's database:
https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=x159

Granted, this is a Trusted - Not Verified dump, but other ROMs that halt at a white screen do play after the correct save type is selected. This one failed to load after trying all save type options.

@profi200
Copy link
Owner

I keep getting distracted. I will take a look at this and the other issue later. In the meantime make sure the save type database is up to date.

@profi200
Copy link
Owner

profi200 commented Jun 1, 2024

This VC dump is patched to high hell with emulator specific looking code + some extra headers/footers.

The first instruction in the ROM has been patched to jump to 0x8784000. At that offset i see instructions which are not valid on ARM7. For example:
8784008: ee801000 cdp 0, 8, cr1, cr0, cr0, {0}

This will likely never run correctly on hardware.

@profi200
Copy link
Owner

profi200 commented Jun 1, 2024

With this patch the game seems to run fine. It removes the weird jump to 0x08784000 so the invalid code never gets executed but i can't guarantee that they didn't add more weird patches.

Patch the game with armips. https://github.com/Kingcom/armips

.gba
.arm


; Helpful constants.
rom_start          equ 0x08000000
rom_entry_branch   equ rom_start
multiboot_branch   equ rom_start + 0xC0
input_file_name    equ "metroid_vc.gba"
output_file_name   equ "metroid_vc_patched.gba"



.create output_file_name, rom_start
.org rom_entry_branch
	b multiboot_branch

.incbin input_file_name, 4

.Close

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants