Code Monkey home page Code Monkey logo

n64loaderwv's People

Contributors

astrelsky avatar blackgamma7 avatar dmattia avatar jeffmicklos avatar zerokilo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

n64loaderwv's Issues

header's loadAddress doesn't compensate for bootchip offsets

See Yoshi's Story as an example: the header reports 0x80200400 as the ram start in the header, but it is using boot chip CIC-NUS-6106, which means 0x200000 gets subtracted from the header-reported ram address to get the actual ram address of the code: 0x80000400

An example of a python script of mine that checks for the boot chip and does the adjustment based on which one it finds: https://github.com/ethteck/splat/blob/master/util/n64/rominfo.py

can't get the plugin to recognize N64 files

Hi,

Thanks for writing this plugin. I'm sure it works great, but I'm having major trouble getting it to recognize N64 ROM files.

I've tried using the latest Ghidra 9.1-BETA_Dev from the official site.

I can get the extension to seemingly install fine, by copying the N64LoaderWV.zip file into C:\ghidra_9.1-BETA_DEV\Extensions\Ghidra, then renaming the start of the file to match the sig of the sample.

That then apparently extracts the extension zip into C:\ghidra_9.1-BETA_DEV\Ghidra\Extensions

(which is quite confusing, btw, but that's a Ghidra folder naming convention.)

I have Mario 64 as SM64.n64 and SM64.z64 in C:\ghidra_projects

The .n64 file is byte-swapped, so says "RAMIO 46" etc. in the cart header. The .z64 is normal endianess, so says "MARIO 64".

But Ghidra still only detects the ROM file(s) as raw binary?

So I then tried downloading the older 9.0.4 commit of your extension, and the older 9.0.4 of Ghidra, deleted the old project, installed the extension, restarted Ghidra, created a new project, and tried doing an Import of SM64 again, but no joy. It's like the extension isn't being run at all?

I'm on Win 10 x64 on an i5. I tried running ghidraRun.bat as Administrator, but nothing seems to help.

image

image

image

freez 411k

This freezes for OoTMQ (Debug Version) Auto Analyzis.

Format doesn't appear for Rayman 2

Hi, when trying to load Rayman 2 N64 (.z64 file), I do not see the N64 Loader Format appear, only the raw binary format option. I have restarted Ghidra after ticking the install checkbox. Any idea how to fix this?

I use the latest stable Ghidra version (9.0.4)

Importing Debug/Symbol Data

If I compiled a rom from source, how can I import debug/symbol information into Ghidra to help with analysis?

I'm trying to get a better idea of how specific code works at the hardware level once compiled.

Issues working with Ghidra

Hi,

I did all of the steps to install the extension on Ghidra and the extension does not show up in the Install Extension window that is under File then Install Extension. I have tried it on Ghdria 9.1.2 and 9.1.0. I even updated my JDK version to 14 but nothing has worked.

Issue with memory mapping (paper mario)

So, when I load the rom, the rom main is detected properly, but everything before that function is not even mapped in a memory so ghidra doesn't analyse them. This is bad because even main jumps to somewhere ghidra doesn't recognise as an address and from what someone who know a lot more about the game than me told me, this region in ram skips over important operating system stuff.

So it seems the load address is always the start of memory, but in this case, this would be incorrect as there's memory and code before it.

Is there a way to fix this? I tried on mario party 3 and that one loaded fine, but the load address was very close to 0x80000000 so that is probably why it didn't had the issue.

[enhancement] building on linux is not straightforward, I suggest adding instructions to the readme.

On arch linux (and any system in which you've installed ghidra with your distro's package manager, likely most of them) it's not obvious what GHIDRA_INSTALL_DIR should be.

This one-liner should provide the correct directory, so long ghidra is in PATH:

GHIDRA_INSTALL_DIR=$(dirname $(readlink -fe $(which ghidra))) gradle

we run which ghidra, then we figure out what that path is a symlink to using readlink -fe, and then we use the return value of that as the environment value, we then run gradle with this env preloaded (we may not want to export it as this could clobber the user's environment).

Support for Ghidra 10.3

I'm not sure the effort involved to release a new version compatible with the latest Ghidra release (10.3). If your time does not allow, I totally understand.

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.