
Show HN: Kirby's Dreamland 2 level viewer, in JavaScript - fallat
http://ecc-comp.blogspot.com/2016/03/reverse-engineering-kirbys-dreamland-2.html
======
HCIdivision17
I was really pleased with the vgrep technique he used at the start to figure
out what changed the map data. I often forget just how awesome our eyes are at
spotting changing stuff at a glance and small datasets don't take long to
manually look at.

Simply open the working RAM and look at it; lo and behold the thing is right
_there_.

(There's some super spiffy things built on this idea, the one I was really
excited to see come out was ..cantor.dust.. [0], which was never released.)

[0]
[https://sites.google.com/site/xxcantorxdustxx/](https://sites.google.com/site/xxcantorxdustxx/)

EDIT: formatting

~~~
fallat
Whoa.

I can't tell if this is a joke, or 100% serious. I'm trying to find a download
link because damn this looks cool. Thanks for sharing.

~~~
HCIdivision17
Totally for real, but a bit of a vaporware. You can get a demo version from
this reddit thread:

[https://www.reddit.com/r/ReverseEngineering/comments/1izity/...](https://www.reddit.com/r/ReverseEngineering/comments/1izity/cantordust_a_binary_visualization_tool)

~~~
fallat
Now we reverse engineer the reverse engineering tool and create an open source
version that can hook into /proc/mem and other streams instead of just files
:)

------
dang
We changed the URL to this one because it tells the story. The submitted URL
was [http://github.com/lf94/kdl2viewer](http://github.com/lf94/kdl2viewer).
Both are great.

------
RodgerTheGreat
Could you add some screenshots or GIFs to the readme, to give a sense of how
it works for people who don't have a ROM handy?

~~~
Karuma
This is a much interesting link: [http://ecc-
comp.blogspot.com/2016/03/reverse-engineering-kir...](http://ecc-
comp.blogspot.com/2016/03/reverse-engineering-kirbys-dreamland-2.html)

Has some screenshots too.

~~~
fallat
Yeah, document.org in the repository is a reflection of that post.

------
pcwalton
Looks like the compression is a variant of LC_LZ2, used in lots of Nintendo
games: [http://www.smwiki.net/wiki/LC_LZ2](http://www.smwiki.net/wiki/LC_LZ2)

------
xlm1717
>Kirby's Dreamland 3 for SNES, except it's rare and worth at least $80

I have that game, always loved playing that game, and am surprised to know
it's now worth at least $80!

------
gravypod
How did you dump the rom?

~~~
mattdotc
Chances are he didn't. Verified dumps are all over the internet.

However, a sufficiently motivated individual can create cartridge dumpers with
hardware like Arduino and a broken Game Boy (to harvest the socket for
convenience). The cartridges for most/all game systems are widely understood
by this point thanks to the efforts of reverse engineers.

Of course there are also pre-built dumpers available through various sources.
They are not unique to the present-day. Even when the SNES and Game Boy were
still selling on shelves, there were devices created specifically for copying
cartridges to alternative storage such as floppy disk or custom cartridges.

------
benbenolson
Why?

~~~
HCIdivision17
Conveniently, section 1.1 of the current link [0] covers this (it's one of the
earlier sections).

[0]
[https://news.ycombinator.com/item?id=11300075](https://news.ycombinator.com/item?id=11300075)

------
huangc10
Rundown? Can you use that in a sentence?

~~~
fallat
run·down

noun

noun: rundown; plural noun: rundowns; noun: run-down; plural noun: run-downs

ˈrənˌdoun/

    
    
        1. an analysis or summary of something by a knowledgeable person.
        "he gave his teammates a rundown on the opposition"

~~~
lpbonenfant
I think it the parent meant to reference Oscar in "the Office"

