finish the convert_trainer_name when not lazy

This commit is contained in:
2022-07-05 16:02:36 +02:00
parent 4be5a72972
commit 128d5406ce
11 changed files with 100 additions and 0 deletions

8
main/Cargo.toml Normal file
View File

@@ -0,0 +1,8 @@
[package]
name = "pokevault"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

12
main/main.iml Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="RUST_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

28
main/src/main.rs Normal file
View File

@@ -0,0 +1,28 @@
use std::fs::File;
use std::io::{BufReader, Read};
use std::path::Path;
use crate::saves::{convert_trainer_name, Save};
mod test;
mod saves;
fn main() {
}
fn read_save(save_path: &Path) -> Result<Save, ()>{
let f = File::open(save_path).unwrap();
let mut reader = BufReader::new(f);
let mut buffer = Vec::new();
reader.read_to_end(&mut buffer).unwrap();
let mut temp:Vec<u8> = Vec::new();
for &var in &buffer[0x2598.. 0x2598 + 0xb] {
}
let save = Save {
trainer_name: convert_trainer_name(buffer[0x2598 .. 0x2598 + 0xb]),
playtime_hours: *&buffer[0x2CED]
};
return Ok(save); //learned something new today
}

View File

@@ -1,4 +1,13 @@
pub struct Save {
pub(crate) trainer_name: String,
pub(crate) playtime_hours: u8 //in seconds, biggest number should be like 4.3 mill, biggest available time (999:95) is like... 3.6 mill, maybe a little more. 3.7 max
}
// Bytes from the save are not utf8... or i think so. The numbers need to be lower at least.
// The save's name should be RED, so have to finish this function
pub fn convert_trainer_name(bytes: [u8]) -> String {
for mut x in bytes {
x -= 40;
}
return String::from_utf8(bytes).unwrap();
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,23 @@
-compatible with Project64 v2.3.2 (tested)
1. Have Pkmn Stadium ROM
2. Install and Open PJ64 [put POKEMON STADIUM.fla and POKEMON STADIUM.bak in C:\(WHEREVER YOU INSTALLED IT)\Project64 2.3\Save]
3. Go to Options -> "Configure Controller Plugin" -> "Controller 1" -> "Controller Pak"
4. Toggle "RawData" (make sure it has a checkmark)
5. Select "Transfer Pak" in the drop-down menu
6. Select the ROM (.gbc) file [the game itself]
7. Select the save file (.sav or .sv)
8. Open Pkmn Stadium ROM and go to the Pokemon Stadium (has floating Mewtwo shadow above)
9. Go to Prof. Oak's research Lab
10. Select the game cartridge
11. Use the sophisticated PC.
12. Select Items
13. Select "Choose left/right BOX"
14. Select "N64 Game Pak".
15. Enjoy! Transfer to your heart's content
Optional: If you want to play the game use GlideN64 for best results (https://github.com/gonetz/GLideN64/releases)
-use a GameBoy emulator to save in a Pkmn Center (like VisualBoyAdvance or mGBA)
-DO NOT USE THE GB TOWER

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -0,0 +1,20 @@
Instructions
1. Pick the save file which you want.
2. Put it in the directory (folder) which the emulator reads it from, which could be...
- the directory of the ROM
- subsidiary of the emulator (one of the folders where the emulator executable is located)
- a custom location ( check the directory settings of the emulator (usually called native or battery saves) )
3. Make sure the (.sav) file matches the name of the ROM! (rename it if you have to)
4. Enjoy!
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Contents
1. All Pokemon are seen and caught. (all in the PC at level 100 each)
2. All items collected around the map. (even the hidden ones)
3. All trainers battled at least once. (Elite Four can be rebattled infinitely)
4. Party consists of Pikachu at max friendship (w/ or w/o Surf) & a Mew with all HMs. (w/ or w/o Surf) - Pikachu has the HM that Mew doesn't.
5. A diploma proving the ownership of a complete Pok<6F>dex.

Binary file not shown.