mirror of
https://github.com/rvtr/wiki.git
synced 2025-06-18 11:05:39 -04:00
gbarunner2: GBA BIOS dumping guide
Most of this is based on GlaZed_Belmont's guide, which we now have permission to copy over. Co-authored-by: Pk11 <pk11@outlook.jp>
This commit is contained in:
parent
d9f9bd0842
commit
b74981acbd
@ -15,4 +15,4 @@
|
|||||||
"toggle-navigation": "Toggle navigation",
|
"toggle-navigation": "Toggle navigation",
|
||||||
"translate-here": "Translate here",
|
"translate-here": "Translate here",
|
||||||
"translate-on-crowdin": "Translate on Crowdin"
|
"translate-on-crowdin": "Translate on Crowdin"
|
||||||
}
|
}
|
||||||
|
2
_includes/bios-shrinker.html
Normal file
2
_includes/bios-shrinker.html
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<label for="file-input" class="form-label">{{ include.text }}</label>
|
||||||
|
<input id="file-input" class="form-control mb-2" type="file" onchange="shrinkBios(this.files[0])">
|
39
assets/js/bios-shrinker.js
Normal file
39
assets/js/bios-shrinker.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
const gbaSha = "fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570";
|
||||||
|
const dsSha = "782eb3894237ec6aa411b78ffee19078bacf10413856d33cda10b44fd9c2856b";
|
||||||
|
|
||||||
|
function shrinkBios(file) {
|
||||||
|
// Check that the file is 32 KiB
|
||||||
|
if(file.size != 32 << 10)
|
||||||
|
return alert("Error! This is not a correct GBA BIOS dumper save.");
|
||||||
|
|
||||||
|
// Read the file
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.readAsArrayBuffer(file);
|
||||||
|
reader.onload = function() {
|
||||||
|
var array = new Uint8Array(this.result);
|
||||||
|
|
||||||
|
// Trim to 16 KiB
|
||||||
|
array = array.subarray(0, 16 << 10);
|
||||||
|
|
||||||
|
// Check hash
|
||||||
|
var bStr = "";
|
||||||
|
for(i in array)
|
||||||
|
bStr += String.fromCharCode(array[i]);
|
||||||
|
var sha = sha256(bStr);
|
||||||
|
|
||||||
|
if(sha == gbaSha || sha == dsSha) {
|
||||||
|
// Download trimmed file
|
||||||
|
var blob = new Blob([array], {type: "application/octet-stream"});
|
||||||
|
var a = document.createElement("a");
|
||||||
|
var url = window.URL.createObjectURL(blob);
|
||||||
|
a.href = url;
|
||||||
|
a.download = "bios.bin";
|
||||||
|
a.click();
|
||||||
|
window.URL.revokeObjectURL(url);
|
||||||
|
|
||||||
|
alert("Done! Checksum matches as a correct BIOS dump from a " + (sha == gbaSha ? "GBA" : "DS") + ".\n\nSHA-256: " + sha);
|
||||||
|
} else {
|
||||||
|
alert("Error! Trimmed BIOS checksum does not match a valid GBA BIOS checksum.\n\nSHA-256: " + sha);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
80
pages/_en-US/gbarunner2/bios-dump.md
Normal file
80
pages/_en-US/gbarunner2/bios-dump.md
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
---
|
||||||
|
lang: en-US
|
||||||
|
layout: wiki
|
||||||
|
section: gbarunner2
|
||||||
|
title: GBA BIOS Dumping
|
||||||
|
description: How to extract the Nintendo GBA BIOS from your console
|
||||||
|
tabs:
|
||||||
|
- tab-3ds-sd-card: 3DS with open_agb_firm
|
||||||
|
tab-gba-flashcart: GBA/DS/DS Lite with a GBA-mode flashcart
|
||||||
|
---
|
||||||
|
|
||||||
|
While most GBA emulators have no issue playing GBA games by itself, some emulators and hypervisors, such as GBARunner2, may need the BIOS file to properly playback some titles.
|
||||||
|
|
||||||
|
There are two distinct ways to achieve this, using:
|
||||||
|
- a 3DS with custom firmware, OR
|
||||||
|
- a GBA/DS/DS Lite with a GBA-mode flashcart
|
||||||
|
|
||||||
|
{% capture tab-3ds-sd-card %}
|
||||||
|
### Part 1: Getting the required files
|
||||||
|
1. Download [open_agb_firm](https://github.com/profi200/open_agb_firm/releases/latest) (the `.7z` file)
|
||||||
|
1. Download [Bios_Dumper.gba](https://github.com/GlaZedBelmont/Random-Stuff/releases/download/0.0.5/Bios_Dumper.gba)
|
||||||
|
1. Create a folder named `payloads` inside the `/luma` folder if it does not already exist
|
||||||
|
1. Copy `open_agb_firm.firm` from the open_agb_firm `.7z` file to the `/luma/payloads` folder
|
||||||
|
1. Copy `Bios_Dumper.gba` to the root of your SD card
|
||||||
|
1. Reinsert your SD card into your device
|
||||||
|
|
||||||
|
### Part 2: Bios_Dumper
|
||||||
|
1. Press and hold <kbd>START</kbd>, and while holding <kbd>START</kbd>, power on your device
|
||||||
|
- This will launch open_agb_firm
|
||||||
|
- If it loads the `Luma3DS Chainloader`, select `open_agb_firm` from this menu
|
||||||
|
- If it loads to something else, you did not copy `open_agb_firm.firm` to the correct folder on your SD card
|
||||||
|
1. From open_agb_firm, launch `Bios_Dumper.gba`
|
||||||
|
1. The screen will flash red, then it will flash green
|
||||||
|
1. Wait for about five seconds
|
||||||
|
1. Power off your device
|
||||||
|
|
||||||
|
{% capture upload-bios-text %}
|
||||||
|
From your SD card, upload `/3ds/open_agb_firm/saves/Bios_Dumper.sav` here:
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
|
### Part 3: Unpack the BIOS from the generated save file
|
||||||
|
1. Insert your SD card into your computer
|
||||||
|
1. {% include bios-shrinker.html text=upload-bios-text %}
|
||||||
|
|
||||||
|
{% endcapture %}
|
||||||
|
{% assign tab-3ds-sd-card = tab-3ds-sd-card | split: "////////" %}
|
||||||
|
|
||||||
|
|
||||||
|
{% capture tab-gba-flashcart %}
|
||||||
|
### Part 1: Getting the required files
|
||||||
|
1. Download [Bios_Dumper.gba](https://github.com/GlaZedBelmont/Random-Stuff/releases/download/0.0.5/Bios_Dumper.gba)
|
||||||
|
1. Copy `Bios_Dumper.gba` to the root of your flashcart's SD card
|
||||||
|
1. Reinsert your SD card into your flashcart
|
||||||
|
1. Reinsert your GBA flashcart into your cartridge
|
||||||
|
|
||||||
|
### Part 2: Bios_Dumper
|
||||||
|
1. Launch your flashcart, then launch `Bios_Dumper.gba`
|
||||||
|
1. The screen will flash red, then it will flash green
|
||||||
|
1. Wait for about five seconds
|
||||||
|
1. Power off your device
|
||||||
|
|
||||||
|
{% capture upload-bios-text %}
|
||||||
|
From your SD card, upload `Bios_Dumper.sav` here:
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
|
### Part 3: Unpack the BIOS from the generated save file
|
||||||
|
1. Insert your SD card into your computer
|
||||||
|
1. {% include bios-shrinker.html text=upload-bios-text %}
|
||||||
|
|
||||||
|
{% endcapture %}
|
||||||
|
{% assign tab-gba-flashcart = tab-gba-flashcart | split: "////////" %}
|
||||||
|
|
||||||
|
{% assign tabs = tab-3ds-sd-card | concat: tab-gba-flashcart %}
|
||||||
|
{% include tabs.html index=0 tabs=tabs %}
|
||||||
|
|
||||||
|
A `bios.bin` file will automatically download. This is the final GBA BIOS file.
|
||||||
|
{:.alert .alert-success}
|
||||||
|
|
||||||
|
<script src="https://geraintluff.github.io/sha256/sha256.min.js"></script>
|
||||||
|
<script src="/assets/js/bios-shrinker.js"></script>
|
Loading…
Reference in New Issue
Block a user