about summary refs log tree commit diff stats
path: root/gba
Commit message (Collapse)AuthorAgeFilesLines
* Removed dependency on ROM-internal arraysKelly Rauchenberger2017-08-189-15/+2567
| | | | | | | | | | | | I looked at the base stats array and determined that, especially if I limited it to just the data I needed, that it wouldn't be too bad a thing to just include it and the other two arrays I need in my multiboot image rather than reference the ones already located in the game ROM. This way, we get back compatibility with all previously-compatible ROMs, and not just ones that I have dumped. New issue: Deoxys's base stats are actually different per-game, though, so a special case will have to be written for that.
* Added copyright info to the top of three new filesKelly Rauchenberger2017-08-182-0/+12
|
* Started working on serializing pokemon dataKelly Rauchenberger2017-08-187-43/+656
| | | | | | | | | | | | | | | | | | | | | | | The GBA program now sends serialized data about the first pokemon in the player's party over to the Wii. This data doesn't yet include all of the information that we will eventually want. It does, however, not transfer any private data, specifically IVs, EVs, and the personality value. It does this by deriving the public information (stats, nature, gender, shiny) before sending the pokemon over. Because of this, lookup tables for things such as base stats were needed, and given that these are large tables, it was easier to use the tables already existent in the game's ROM. Thus, the addresses of the three lookup tables that are now used are necessary for each ROM that this tool supports. I derived the addresses for version 1 of English Pokemon LeafGreen by dumping my own copy and searching through it with a text editor. Thus, at the current time, that cartridge is the only one that is supported. I will supplement this soon with addresses for the other four gen 3 carts that I have, but that will still not provide a very large amount of coverage. I have not yet decided how to address this issue. There is one current bug with the serialized data: the Wii doesn't seem to see the original trainer ID. Will fix.
* App now waits for confirmation to import, and reads pokedex seen&caughtKelly Rauchenberger2017-07-133-0/+81
|
* Fixed indentationKelly Rauchenberger2017-07-113-20/+18
|
* Merged in gba-gen3multibootKelly Rauchenberger2017-07-111-2/+1
|\ | | | | | | | | | | | | | | | | 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.
| * Major changesslipstream/RoL2017-02-268-631/+1656
| | | | | | | | | | | | | | | | - 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.
| * Forgot to commit a fileslipstream/RoL2017-02-211-0/+10
| | | | | | | | | | | | Added GAME_RUBY/GAME_SAPP/GAME_RS/GAME_FR/GAME_LG/GAME_FRLG/GAME_EM/LANG_JAPAN macros.
| * New features and bugfixesslipstream/RoL2017-02-211-11/+124
| | | | | | | | | | | | | | - 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
| * Add support for almost all Gen III gamesslipstream/RoL2017-02-207-15/+299
| | | | | | | | | | | | | | | | | | | | | | | | 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!
| * Initial commit of the forkslipstream/RoL2017-02-195-233/+444
| | | | | | | | Forking gba-link-cable-dumper to gba-gen3multiboot
* | Major reformatting, cleaning up black magicKelly Rauchenberger2017-07-117-1082/+121
| |
* | Things are semi-reliably working now!Kelly Rauchenberger2017-07-112-24/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | started tweaking with stuffKelly Rauchenberger2017-07-1111-211/+2544
|/
* -added the ability to clear the save on the gba cartridge directlyFIX942016-07-211-8/+17
|
* -make sure to correct filenames with invalid filesystem characters (issue #3)FIX942016-04-221-1/+1
| | | | -corrected the si transfer delay code to only have one properly set delay
* added gba bios dumpingFIX942016-04-101-2/+28
|
* general cleanupFIX942016-04-102-131/+63
|
* fixed up eeprom supportFIX942016-04-091-6/+11
|
* added experimental save support (only tested with EEPROM)FIX942016-04-083-20/+818
|
* first commit, enjoyFIX942016-04-082-0/+262