![]() |
| 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 labmaster |
| Pages: 1 2 3 |
| User | Post | ||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
Originally posted by Xeruss ... not the version that I use. |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| No, I'm pretty sure you're talking about a license here (the GPL is a license). Copyright is automatic - unless you're referring to actually registering the copyright with the Copyright Office (which you need to do if you want to sue anyone). | |||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
![]() |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
Gah, why are we doing this the hard way?
Might whip out IDA and take a closer look at this sucker later. Edit: Okay, most of the stuff above is useless. Actually, all of it really. The game does indeed use a BIOS Decompression function, LZ77UnCompWram to be precise. You probably didn't catch it because it gets decompressed to 02008012 first, before being copied over (part of the function above does this). (edited by labmaster on 12-26-05 05:37 PM) (edited by labmaster on 12-26-05 06:44 PM) |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| Have you tried GBAtemp?. They'd probably be able to tell you reasonably definitively if such a program existed or not. (edit: looks like you'll have to register to view/post).
Writing one wouldn't be too hard, I guess, it'd just take a bit of time to code the input routine (unless you could borrow the source from someone else). Or - even simpler - stuff text input altogether and just set a certain button sequence to start the game. (edited by labmaster on 12-28-05 04:11 AM) |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| Okay, a quick overview of AR M codes.
First up, all AR codes are encrypted. There's a nifty utility out there called ARCrypt by Parasyte and kenobi that we can use to decrypt them - here's the official CJ's M code decrypted: C4001406 000084A1 45345A42 001DC0DE Two lines - the first line is known as the hook, the second line the identifier. The purpose of the hook code is to tell the Action Replay whereabouts in ROM it can insert a 'hook', which allows the code handler to be executed. The first 32-bits tell us that this code is a hook code, and that the address to be patched is 08001406 - the second 32-bits (though only the lower halfword is used in a hook code) are option flags, which indicate the type of hook. The next line identifies the game - the latter 32-bits always being '001DC0DE'. The former is the game code, aka the 32-bit value at 080000AC in the ROM. So, there's no nasty checksumming/hashing to be done (although Gameshark SP/Codebreaker/Xploder M codes do use a 16-bit CRC instead of the game ID). |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| Not a screenshot... but a 50KB AVI file for all those out there interested in Golden Sun entitled "Isaac gives up".
http://metawire.org/~labmaster/isaac.AVI Don't get too excited, though. |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
Millie is a question editor for the GBA series of "Who Wants To Be A Millionaire?" games, and one of the few ROM hacking utilities for a quiz game. Version 1.0 allows users to extract and insert game scripts from any of the currently dumped versions of "Who Wants To Be A Millonaire?". Millie is a command-line utility written in ANSI C. A Windows binary and platform-independent source for the project can be found at Sourceforge. Included are a VS 2005 .sln file and Makefile for *nix systems. I don't really expect anyone to use this, but I've certainly learnt a lot from making it which should help with the next game I'm working on. Next editor is definitely getting a GUI ![]() |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| We were given these in Calculus last year for some reason... good way to fill in a Friday afternoon.
143289765 875316492 926574183 387692514 452831976 619457238 561943827 294768351 738125649 |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
Originally posted by Jason http://board.acmlm.org/private.php |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| I've just finished a program to dump the game's string table. You can see its output at http://romhacking.deadbeat-inc.com/forum/index.php?topic=815.msg9663#msg9663 . First column is the string ID, next is it's location in ROM, then the start of a bitstream that the decompression routine uses, and finally the text itself. Control characters are in brackets - if anyone is interested in compiling a list of what does what (most are quite obvious), I'd appreciate it.
The long term plan is an editor - and at the moment, I'm seriously considering replacing the decompression functions in the game altogether with something a lot nicer. We'll see. (edited by labmaster on 01-09-06 09:44 PM) (edited by labmaster on 01-09-06 10:29 PM) (edited by labmaster on 01-09-06 11:02 PM) (edited by labmaster on 01-10-06 04:09 AM) (edited by labmaster on 01-13-06 02:43 PM) (edited by labmaster on 04-03-06 11:14 PM) |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| Update
* Descriptions for most control codes added * Multi-box dialogue now dumped in full. Next step will be to work on codes 12-16, which will probably take me to the scripts that actually use these strings. |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| Z GUI CFG W
It's a ZSNES configuration file. |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| Saves having to have software mix them (using up precious CPU time), I guess. | |||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| The first instruction that is executed is the ARM opcode at $08000000 (which is 0x0 in the ROM). This is typically a branch instruction, which skips over the header.
GBATEK has a lot of useful information on both the GBA and NDS - it's a very good reference doc to have around. As for trying to find how a game loads tiles - the first thing I'd do is use the devel version of VBA to do a SWI log and see if anything is copying/decompressing to the VRAM block that you'd interested in. If I remember correctly there's some detailed instructions in a thread in the old board/archive. Failing that, you'd need to get a debugger with VRAM breakpoints - if it comes to that and there aren't any others out there, I'll see if I can get around to uploading an unreleased version of VBA-H-SDL with experimental VRAM bkpt support (a couple of people out there have it, but I'm not sure if it's being distributed on the web or not). |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| If you know whereabouts in the global table data is being pulled from a particular level, then you can just put a read breakpoint on that address. If you don't know where in the global table it is, but have the general location of the general table, you can try putting a breakpoint over (what you think is) the entire range.
If you don't actually know where the tiles are coming from, then it's either VRAM breakpoints, or dumping a trace that contains the loading code and looking for something interesting. |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| http://metawire.org/~labmaster/files/sdlkl.zip
^^ My private version of VBA-SDL. It's not optimized, so don't bother using it for anything other than hacking. ? Shows this help information. Type ? adb Toggles Auto Don't Break ba Adds an ARM breakpoint bd Deletes a breakpoint bl Lists breakpoints bj Break on joypad read bpr Break on read bprc Clear break on read bpw Break on write bpwc Clear break on write break Adds a breakpoint on the given function bt Adds a THUMB breakpoint c Continues execution cba Adds a Conditional ARM breakpoint cbt Adds a Conditional THUMB breakpoint cow Select break on change or break on write d Disassembles instructions da Disassembles ARM instructions db Don't break at the following address. dbc Clear the Don't Break list. dload Load raw data dump from file dsave Dump raw data to file dt Disassembles THUMB instructions eb Modify memory location (byte) eh Modify memory location (half-word) er Modify register ew Modify memory location (word) h Shows this help information. Type h io Show I/O registers status last Trigger the display of the last registers states lf Log instructions to file lfc Log instructions to file (doesn't dump register data load Loads a Fx type savegame locals Shows local variables mb Shows memory contents (bytes) mh Shows memory contents (half-words) mw Shows memory contents (words) n Executes the next instruction print Print the value of a exp q Quits the emulator r Shows ARM registers radix Sets the print radix save Creates a Fx type savegame symbols List symbols verbose Change verbose setting where Shows call chain A couple of things may be broken - I haven't touched it for a very long time. bpw will accept VRAM addresses, and should process these correctly (tip: watch out for DMA writes, it catches these as well. If something doesn't look right, check that it's not a DMA write first). It also accepts SRAM addresses but this -does not work-. Just ignore that. edit: some additional info about the conditional syntax - it sucks. This is basically how it works: (address or register) (comparison operator) (address, register or immediate) [(size)] addresses should be prefixed with '$' and are read as hexadecimal. registers should be prefixed with 'R'. immediates should not be prefixed. valid comparison operators are: == != <> < > size is for the size of comparison - i.e. specifies whether to read a byte, halfword, or word when loading values from a given address. use 'b', 'h' or 'w'. (edited by labmaster on 02-24-06 11:35 PM) (edited by labmaster on 02-24-06 11:36 PM) |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| An SPS is basically a 'sav' file with a header tacked on. Try removing the header using a hex editor (I don't think SPS headers have a fixed size, so the easiest way to tell where it finishes is probably to take a look at a normal 'sav' file generated by the game, and seeing if there's some easily recognizable 'marker data' that you can use).
edit: jbtw, which emulator are you using? (edited by labmaster on 03-03-06 01:20 AM) |
|||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| VBA should take SPS files - File->Import->Gameshark Snapshot. If there isn't that feature in your version, you should seriously consider updating (1.6.1 or 1.7.2). | |||
|
labmaster Red Paragoomba Since: 11-18-05 From: Away for exams, back mid-December. Last post: 5983 days Last view: 5913 days |
| ||
| What do you want to use it for? MappyVM will let you export disassemblies, VBA-SDL let's you do it to a limited degree (shouldn't be too hard to make some changes so that you can specify ranges etc...) and of course if you only want to take a look you can use the Disassembly viewer in the GUI version. |
| Pages: 1 2 3 |
| Acmlm's Board - I3 Archive - - Posts by labmaster |