Register | Login | |||||
Main
| Memberlist
| Active users
| Calendar
| Chat
| Online users Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album |
| |
Acmlm's Board - I3 Archive - - Posts by torne |
User | Post | ||
torne Newcomer Since: 01-08-07 From: London, UK Last post: 6329 days Last view: 6306 days |
| ||
Hi there. I'm after approval to post in ROM hacking, as I'm starting to interest myself in fiddling around with the GBA Pokemon games. I'm an experienced ARM assembly coder who's dabbled quite a bit in GBA coding and in reverse engineering binary images for a number of platforms, and my day job is as an embedded ARM OS developer.
I'm hoping I can discover some fun tricks I can share with you all, but to start with, I'm just working on the basics; playing with map editing and hunting for any existing docs on the data formats in the ROM. Once I've done a bit more, I'll see about a whole-program disassembly of one of the GBA Pokemon games with IDA. Thanks folks! |
|||
torne Newcomer Since: 01-08-07 From: London, UK Last post: 6329 days Last view: 6306 days |
| ||
Possibly interesting fact: while there are indeed cultural changes to the game between the English and Japanese versions such as the calendar events, the game itself is almost a direct recompile of the original N64 Doubutsu no Mori source code. The executable contains a N64 sound and graphics emulator - the game itself is still written in terms of the N64's 3D hardware, not the Cube's.
The changes made to add the few Cube-specific features in DnM+ (the Japanese GCN version) were pretty tiny and were all rather 'tacked on' as seperate code modules (such as the NES game items) rather than being integrated in the conceptually 'proper' places in the program. You can see it all quite clearly if you load the binaries into a disassembler and apply the symbolic information from the symbol map files which have been left on the production DVD by a developer cockup. (these left-over symbols are what allowed various people to crack the code generator system, as they contain sufficient information to identify exactly where the item code generation/validation is done without any difficult reverse engineering work, just the effort to understand the code validator itself). Your translation project looks interesting, though - it would be neat to see what the Japanese events are, and to look for any other differences. |
|||
torne Newcomer Since: 01-08-07 From: London, UK Last post: 6329 days Last view: 6306 days |
| ||
I've experimented with the various tools for editing the GBA Pokemon games, and while I'm impressed by the amount of work that must've gone into understanding the games in sufficient depth to make AdvanceMap, EliteMap and so on, I can't help but feel that editing the ROM image directly with every separate tool is not the nicest way it could be done. :-)
To this end, I'm working on a new tool to deconstruct the ROM into its individual components - tilesets, maps, tables of stats, and so on - and reassemble them. The process then becomes more like editing source code, with a 'compile' step to produce a full ROM. This would dispense completely with editing offsets and having to relocate things to free space to enlarge them, as the various components can be assembled and the correct offsets for each component inserted by the tool with no human intervention. I'm likely to use text-based formats editable by both humans and computers for the components, as this lends itself nicely to being stored in a source control system such as CVS for easy cooperation between several people working on the same hack project. The source code for EliteMap, the advanced header views in AdvanceMap, and my ongoing IDA disassembly of the Pokemon code itself are serving me reasonably well in this, but I have yet to Google up any actual documents describing the data formats - do any such documents exist? As a programmer my number one motivation is to not duplicate effort - computers are supposed to save work, not create more - so any references anyone can give, no matter how detailed the information therein, would be much appreciated and will hopefully benefit anyone interested in hacking these games in the long run :-) |
|||
torne Newcomer Since: 01-08-07 From: London, UK Last post: 6329 days Last view: 6306 days |
| ||
Thanks for that; that's some good docs for pokemon/item data. | |||
torne Newcomer Since: 01-08-07 From: London, UK Last post: 6329 days Last view: 6306 days |
| ||
Ooh, thanks a second time. | |||
torne Newcomer Since: 01-08-07 From: London, UK Last post: 6329 days Last view: 6306 days |
| ||
You could always compare the data files for the Japanese and US/EU versions of the GCN port. This might well match up a lot of the text directly with no need to translate. |
Acmlm's Board - I3 Archive - - Posts by torne |