PDA

View Full Version : Diablo [Gameboy] [Unreleased - Tech Demo]



Borman
06-08-2007, 02:03 PM
http://www.ptop.aborman.com/index.php?option=com_content&task=view&id=103&Itemid=29

;)

drx
06-08-2007, 02:58 PM
Interesting stuff. It would be interesting to delve into the code to see what might be hidden within, indeed.

Dot50Cal
06-08-2007, 03:39 PM
Any special apps you would use to do that drx? Or just a standard hex editor?

Nice stuff Borman!

gaming247
06-08-2007, 04:38 PM
Thanks for sharing! I was curious what was on that cart as I'm sure many others were.

CrAzY
06-08-2007, 04:43 PM
So I am guessing that you, Borman, won the eBay auction from Buyatari? :dance:

Mark30001
06-08-2007, 04:45 PM
That's some dough you got.

Thanks for sharing. :)

JamesMichael
06-08-2007, 04:52 PM
Very nice Borman I never knew there was a gameboy diablo! Thanks for sharing

Calpis
06-08-2007, 06:08 PM
Any special apps you would use to do that drx? Or just a standard hex editor?
Yes, a "disassembler", a hex editor will get you practically nowhere. To understand a game, you must separate code from data by various techniques and disassemble the code.

drx
06-08-2007, 07:20 PM
Yes, a "disassembler", a hex editor will get you practically nowhere. To understand a game, you must separate code from data by various techniques and disassemble the code.

Yea, like Calpis said, a disassembler like IDA. Technically it is possible to look at games in a hex editor, but that's like reinventing the wheel and as interesting as watching paint dry.

With some basic understanding of the CPU used in a console, you can work wonders (afaik GB uses a modification of Z80, which IDA happens to support)

There are also separate programs eg to view graphics (like TLP), but that's a different story.

Borman
06-09-2007, 02:41 AM
http://www.gamevideos.com/video/id/12179
Better quality video without the helicopter effect

Dot50Cal
06-09-2007, 04:01 AM
Are there any disassembler's you guys would suggest for GB1 and GBC games?

drx
06-09-2007, 06:17 AM
Well, in my opinion, the best disassembler out there is IDA, because you can produce assemble-able code, and it's an awesome thing in general. But it's not free (the freeware version only supports the x86 CPU), and the license fee isn't very low either.

Another idea would be to use NO$GMB, an excellent GB/GBC debugger, that comes with all the good stuff - breakpoints etc. [link] (http://www.work.de/nocash/gmb.htm)

Or, if you don't mind staring at big text files for hours, try something like WLAD [link] (http://www.niksula.cs.hut.fi/~tursas/wla/wla.html)

Borman
06-09-2007, 08:37 AM
http://www.youtube.com/watch?v=Id1PIXdN550
There, the second video works finally.

Calpis
06-09-2007, 12:06 PM
To get any use out of a disassembler you must understand the target CPU and it's coding paradigms. Many people write their own as part of learning the CPU, since coding one is rather straight forward.

The basic recipe for a disassembler is:

-Decode instruction (operation + address mode) and operand into strings, registers and addresses, output
-Increment file ptr
-Repeat until EOF

To rip apart a game I would:

-First break the game into it's respective banks (if applicable) and find where they're mapped to keep proper addressing
-Then use a tile layer to spot graphics data and make sure I keep those areas out of disassembly
-Use something like WLAD (or the assembler I described) to make a huge text file, must be reassembleable. Try to weed out code which doesn't make any sense, likely that's data such as music or just tables. At this step I try to group subroutines and identify the main loop.
-Comment that disassembly using a debugger such as NO$ while watching the game work. Gotta identify all system I/O ports used and look them up, gotta identify all variables and what references them, gotta identify what pointers point to.

DrMatt
06-09-2007, 11:29 PM
Wow, thats pretty damn smooth for a GB game. Kinda reminds of Perfect Dark for the GB.

bigsexyolli
06-10-2007, 10:19 AM
Looks very interesting, thank you for sharing, much appreciated

JamesMichael
06-10-2007, 06:51 PM
Borman Joystiq has linked to your videos you best send them an email to have them link to your site instead ;-)

http://www.joystiq.com/2007/06/08/a-peek-at-what-almost-was-diablo-on-the-game-boy/

EDIT

Sorry it looks like they have a link now my bad

ServiceGames
06-10-2007, 09:47 PM
I'd imagine that whoever wrote that blurb never even handled an actual original gameboy. What's with everyone acting like Nintendo has always ever been cookie cutter furrytale games? Not trying to be anal, but what's with the church comment? It's as if the author is under the delusion that Gameboy was created for use as a bible or something.

Lyris
06-11-2007, 11:33 AM
These "commercial blog" sites like Joytech, Engadget etc. all do that... they seem to have his slightly sneery writing style that conveys the expression of not really having much of a clue about what they're posting about, yet still commenting on it.

Dot50Cal
06-12-2007, 01:06 AM
These "commercial blog" sites like Joytech, Engadget etc. all do that... they seem to have his slightly sneery writing style that conveys the expression of not really having much of a clue about what they're posting about, yet still commenting on it.

Agree wholeheartedly. They are in such a hurry to post news to gain status on the shitty blog site that they dont care about inaccuracies, credit or anything like that in the writeup.

Borman
06-12-2007, 10:04 AM
Still trying to decide if Ill hold onto this and do a community dump, or just sell it to someone who wants to hah.

Buyatari
06-12-2007, 10:34 PM
Still trying to decide if Ill hold onto this and do a community dump, or just sell it to someone who wants to hah.

I'm curious to see what lies beneath the surface. Wonder if this could be turned into a working game by the right guy.

Borman
06-16-2007, 05:43 PM
Parallel cable on the way to have it dumped :) Pass that, I still dont know what Im doing with the game, as there is another interest Id like to persue hah.

TranceDoll
06-16-2007, 05:50 PM
Parallel cable on the way to have it dumped :) Pass that, I still dont know what Im doing with the game, as there is another interest Id like to persue hah.
Great :D You can mention on your website that you're looking to sell it, and if you get no buyers, you can donate it to a museum :P

Borman
06-16-2007, 06:24 PM
Well that all depends on if I can get cash another way or not hah

Borman
06-16-2007, 09:56 PM
For sale thread up, like I say, it depends on if I can sell a few other bits and pieces.

Borman
06-20-2007, 10:51 PM
http://img.photobucket.com/albums/v450/Borman/diablo.jpg

Buyatari
06-21-2007, 12:23 AM
http://img.photobucket.com/albums/v450/Borman/diablo.jpg

hmm an empty chest.

Does that mean you are out of cash?

Borman
06-21-2007, 12:37 AM
Well Im always out of cash. But the games dumped now ;)

Buyatari
06-21-2007, 12:57 AM
Ahh....so what did you find?

Borman
06-21-2007, 01:04 AM
Havent really looked yet, just glad to have it dumped :)

Mazyora
07-29-2007, 01:18 PM
cool

IIMarckus
07-29-2007, 06:49 PM
Yes, a "disassembler", a hex editor will get you practically nowhere. To understand a game, you must separate code from data by various techniques and disassemble the code.Disassembly is indeed the meat of figuring out a game, but hex editors are more useful than you might think. When I have a game that I want to hack, I have my own methods. The absolute first step is to make a text file with headers for all the banks... GBC games consist of banks of 4000h bytes.

I generally start by finding the text. One way is, if there's any sort of text input or name selection screen, to input a name and then compare a RAM dump via a hex editor. If there isn't anything like that, relative searches (a function available in most hex editors) work quite well unless the font is hugely out of order. Through a bit of experimentation either of those methods can make a complete list of what byte value corresponds to each letter or control code, and thus a table file can be created. Using a hex editor I open the table file and look for text, noting it in my list of ROM offsets and information.

At this point I generally use a program such as Tile Layer Pro to view tiledata. Offsets are found by modifying the first tile of a bunch of tiledata, and using Windhex's compare function with a clean dump. Again, I list the offsets in a text file.

Next I start working with RAM addresses, using VBA's memory viewer to find bytes that change based on various conditions. This is best used for on-screen coordinates, health values, money values, and the player's name (as well as enemies onscreen). Occasionally I stumble across good finds, such as what byte determines the music or, better yet, warps.

Now it's basically an open field. Generally searching in a hex editor for pointers/RAM addresses is good for finding ASM code, and I like to disassemble by hand. This takes longer than using an actual disassembler, but has the advantage that I usually know what's going on at this point and thus can comment the code very easily. no$gmb works great for debugging as well. (On a side note, it doesn't take much effort to memorize several of the opcodes for a particular system. E.g., CDh is "call YYXX," C9 is "ret," and "x1" is "ld rp,$YYXX".)

So yes, disassemblers are somewhat useful, but they can't be used to collect pure data such as text. That's why you should use multiple tools.