| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
I originally cloned this repo from gba-link-cable-dumper so this commit
is merging in the "changes" from gba-gen3multiboot even though I really
already applied everything myself. Also changed the output binary name,
and removed the unused dependency on libfat.
Todo: rewrite README.
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Added saveblock structures.
- Changed example payload, now it warps to Hall of Fame.
- Added helper library for Pokémon manipulation, checksum calculation,
etc.
- Removed libSave, it's not needed.
|
| |
| |
| |
| |
| |
| | |
Added
GAME_RUBY/GAME_SAPP/GAME_RS/GAME_FR/GAME_LG/GAME_FRLG/GAME_EM/LANG_JAPAN
macros.
|
| |
| |
| |
| |
| |
| |
| | |
- Fixed FireRed v1.0 (Japan) support
- Now reloads the Pokémon from the loaded savefile after calling the
payload, so the payload can modify those parts of saveBlock1 directly
- Decrypts "secure" save data areas in FireRed, LeafGreen and Emerald
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The only Gen III game unsupported should be Pokémon LeafGreen v1.1
(Japan); as it is undumped.
A couple of bugs have also been fixed.
The code has also been refactored a little; now payload code goes into
`payload.c`. The codebase is also ready for a planned future change to
include savedata structure definitions. This will be done when it's done
-- PRs to help would be appreciated!
|
| |
| |
| |
| | |
Forking gba-link-cable-dumper to gba-gen3multiboot
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A good portion of the time, the Wii will display:
Pokemon LeafGreen
Trainer: Starla (34182)
which is the correct data on the cartridge I am testing with.
Most of the GBA changes are within comments and are unimportant. I did
uncomment the portion where it sends over the trainer's name, and I
fixed how it reads the trainer ID from memory.
The Wii changes involve properly cooperating in the message sending
protocol I'm having the GBA and Wii use.
More description regarding protocol: I'm not super familiar with the
JOY BUS protocol because it's undocumented, but there seems to be this
issue where the Wii reads the same value multiple times from the cable,
and since the cable is used to negotiate the multiboot image, I need to
make sure that the Wii and GBA are on the same page. Since the last
message that the GBA sends is nonzero, I have the GBA image start by
sending a zero and waiting for a response, and I have the Wii wait for a
zero. The Wii then sends a zero in response to the GBA. From then on,
the message sending protocol works like so:
Wii: waits for non-zero value
GBA: sends non-zero value, waits for any response
Wii: reads message, sends 0 response, waits for 0 response
GBA: receives response, sends 0 response, waits for any response
Wii: reads 0, continues on with program
The reason for this is to prevent incorrect communication caused by the
Wii reading the same value from the GBA multiple times by essentially
delimiting the message. This is currently pretty slow because I have
debugging messages and sleeps everywhere. I will clean this code up, but
this project is slightly dark magic right now and I wanted to commit
something that worked in the slightest.
Also added a debug function that transcodes from the proprietary gen 3
encoding to ASCII in the domain of characters that can actually be used
in names (except for the 6 special German ones). Thanks to Bulbapedia
(https://bulbapedia.bulbagarden.net/wiki/Character_encoding_in_Generation_III)
for this. It's used for now to display the Trainer name on the console.
It assumes that the cartridge is non-Japanese; this will be addressed.
I'm not currently planning on transcoding names before transmitting them,
because of the fact that there are characters in the character set that
are not present in any other character set, and thus transcoding them
spuriously (like PK -> P,K) is a loss of data. However, it is true that
no such characters exist in the set of characters that can be used for
names (in either the Japanese or non-Japanese encoding), so I may later
decide to transcode to Unicode on the Wii before transmitting.
|
|/ |
|
| |
|
|
|
|
| |
-corrected the si transfer delay code to only have one properly set delay
|
| |
|
| |
|
| |
|
| |
|
|
|