Giter Site home page Giter Site logo

Comments (11)

kemenaran avatar kemenaran commented on June 6, 2024

Hello!

  1. How did you manage to rip all text dialogues?

Well, @Sanqui did that, and is much more skilled than me, so maybe they can explain better how they did :)

I think he got the data format from the ROM hacking community (there are some documentation about how LADX stores various data, like dialogs, maps or dungeons, used for level editors). He then used a python script to read the dialogs.

I guess the same thing could be done for maps, for instance: the data format is pretty well documented, and could be turned into an asm source file with a python script.

  1. I know some Game Boy ROMs that have compressed graphics. How do you guarantee that only converting ROM banks will give you all graphics data from the game?

Very few graphics are compressed in LADX – and the one that are (like photo pictures) are using a very basic compression scheme.

That said, I can be sure the disassembly produces the exact original ROM because every time it is build the digest is compared to the one of the original one – and they have to match. So we are sure the exact same binary is produced.

  1. Is there any plan on music and SFX? Maybe a tool or technique to rip that?

There are no tools for now, but that could be interesting! If you are interested, I would go to see how the pokered project disassembled the musics of Pokemon Red and Blue. Same thing, they have some python scripts to turn the data into assembly. Of course the data format is probably not the same, but it could be figured out.

from ladx-disassembly.

Stewmath avatar Stewmath commented on June 6, 2024

About music: I've dumped music from Oracle of Ages/Seasons, though the formatting is pretty rough compared to the pokemon projects. Need to polish that a bit.

Dumper: https://github.com/Drenn1/ages-disasm/blob/master/tools/dumpMusic.py
Ages music: https://github.com/Drenn1/ages-disasm/blob/master/audio/soundChannelData.s

I'm pretty sure Link's Awakening uses a different format, though I haven't looked very far into it.

from ladx-disassembly.

kemenaran avatar kemenaran commented on June 6, 2024

@Drenn1 oh, neat. How did you figure out the format? By disassembling the sound routines, I guess?

from ladx-disassembly.

Sanqui avatar Sanqui commented on June 6, 2024

What @kemenaran said is mostly right. Actually, I didn't even look up any documentation. I found the text in the intro ("What a relief!"), set a breakpoint on it, and traced back the relevant code to figure out where the pointer table is. From there I was ready to write a script to dump all the text. :)

from ladx-disassembly.

raphaklaus avatar raphaklaus commented on June 6, 2024

@kemenaran thank you for pointing that out! I'm interested in contributing to music, but I know it's hard to track this.

@Drenn1 interesting. Do you know if this sound format is somehow related to GBS (Gabe Boy Sound System)? I know that every Game Boy game has its own sound driver. Making things hard to understand. Can you explain how was the process of disassembly the music/sound a bit?

@Sanqui that's cool! So you made a dynamic analyze. I've checked your script. I'm not so good with Python (I'm JS guy) but it gives me many insights :)

from ladx-disassembly.

Sanqui avatar Sanqui commented on June 6, 2024

@raphaklaus GBS is not a format per se, it's essentially a stripped down ROM with only the sound driver and music.

The text.py script isn't particularly good code. It's a one-off written to serve a purpose ("write once, read never"). Don't try to learn from it, really :)

from ladx-disassembly.

kemenaran avatar kemenaran commented on June 6, 2024

@raphaklaus you could have a look at pokemon red music disassembling script (in Python also) and the resulting output. (I'm not vouching for the quality of the Python code though)

from ladx-disassembly.

kemenaran avatar kemenaran commented on June 6, 2024

(@raphaklaus and here are the macros defined to make the audio files readable)

from ladx-disassembly.

raphaklaus avatar raphaklaus commented on June 6, 2024

@Sanqui You're right. GBS is more a GB Program than a format. Thanks for the clarification! About text.py too late! 😂 I really don't care about beauty code, but what the logic can teach me :)

@kemenaran I'm kind familiar with PokeRed Disasm, but I didn't know about the macros! That's really good to make files readable and make sure it will compile back to binary format with the same SHA signature. Is there a Slack channel or something like that so we can chat about this project's contributions? I'd love to make some contributions in sound/music area.

Maybe I can write some tools to help the disassembly process. I wrote two in the past but it's in NodeJS. Is there a problem to be in this language or do you prefer Python only?

from ladx-disassembly.

kemenaran avatar kemenaran commented on June 6, 2024

@raphaklaus for me the tools language is secondary; it's more about the output anyway, so Node would be fine 👍

I just created a Discord chat for LADX; you can join here if you wish! https://discord.gg/sSHrwdB

from ladx-disassembly.

kemenaran avatar kemenaran commented on June 6, 2024

(The discussion has been inactive for a month; closing this issue.)

from ladx-disassembly.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.