Coder Social home page Coder Social logo

psxvram-dotnet's Introduction

PsxVram-DotNet

Viewer for displaying PSX VRAM dumps. screenshot

Features

  • Main PSX emulators savestates support
  • Predefined texture pages and CLUTs positions for each mode for ease of VRAM navigation
  • GUI with mouse/keyboard naviation
  • Save image function for textures ripping
  • Save selected pixels or CLUT to binary file for search in game's resources
  • DotNet Core application allows to port it to Linux as well

Start

PsxVram-DotNet [InputFile]

Supported InputFile formats:

  • ePSXe (1.0.6 and 2.0.5) savestates
  • PCSX (1.5) and all based on this version forks, like Agemo or Zhaosili Debugger savestates
  • PCSXR (1.9.93) savestates

*For most GPU plugins VRAM start addresses for these savestates are the same and should open correctly. But keep in mind, that start address (and even dump contents) can depend on GPU plugin.

  • RetroArch (Core: Beetle PSX or Beetle PSX HW): .auto or .state savestate file, which should be uncompressed. Emulator's Savestate Compression option under Settings > Saving should be turned off.

  • no$psx (2.0): .sna savestate file, which should be uncompressed. Emulator's save file settings: none, raw or uncompressed.

  • Raw binary 1MB PSX VRAM dump. This be obtained from most PSX debugging emulators, like PCSX or No$PSX.

*Emulator's version numbers are tested ones, it's possible, that other versions savestates will be also opened correctly.

Application handles input file the following way:

  • If InputFile command line argument is set, it will be loaded immediately. Which also allows you just to drag&drop files on the app icon in windows explorer.
  • If a vram.bin file is found in current directory, and no command line arguments are provided, vram.bin will be loaded.
  • If no proper format files are found, application opens in disabled mode and you can load new file via Open file button.

Usage

Base case scenario, it is assumed that you find the place you are interested in the game. You make savestate and open it with application.
Or you save emulator VRAM dump into a specific folder. You can then copy the application to this folder and it will open vram.bin every time it starts.
Then, you can view the entire dump in all supported PSX modes. Left mouse button moves rectangle, right mouse button moves CLUT line. Mouse button places rectangle with default padding (which must fit in most cases). If needed, rectangle and CLUT position can be adjusted with hotkeys or corresponding form controls.
You can then move through the code in the emulator, rewrite the updated dump over the old one, update the application with the button and see the last changes in the PSX video memory.
In the status bar, you can see the necessary coordinates and addresses of the pieces of graphics you are interested in for further work in the debugger.
It is possible to save mode window contents to BMP file in corresponding VRAM dump folder. Bitmap mode and palette are transferred to BMP according to current mode. Transparency is supported.

It is also possible to save CLUT and selected piece of graphics to binary files for further search. Suppose you have found specific CLUT in VRAM dump and now want to find where in game resources this CLUT is stored. You highlight this CLUT in indexed mode and select from the drop-down menu: 'Save binary dump -> CLUT' The CLUT is then saved to a binary file (in the same folder where the VRAM dump is located), and its hex representation is copied to the clipboard. Now you can use applications that can search by the contents of files in a certain folder, go to the rip file structure of the game's ISO and find the file that contains these bytes. Some file managers have this feature (like Total Commander). And then in the hex editor, you can find the offset of these bytes in the game resource file itself. The same logic applies to the search for pixels directly in game resources. In the main window, you select with a rectangle the graphics area in VRAM that you want to find, save the first scanline of the selected piece to a binary file and search for it in the rip folder of the game ISO.

Hotkeys

  • W/S/A/D: Move view rectangle
  • Ctrl + (W/S/A/D): Move CLUT line
  • Shift +(W/S/A/D) direction: Change rectangle size
  • Mouse. Left: move view rectangle, Right: move CLUT line, Middle: drag image if zoomed

History

Initially 'Psx V-Ram' was created by Agemo as pure Windows API application, then rewritten by Griever into 'PsxVram-SDL' for multiplatform purposes, which was then rewritten into this application for further development with normal GUI features possible.

Licence

For license information please see LICENSE.md

Credits

psxvram-dotnet's People

Contributors

romhack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

psxvram-dotnet's Issues

Mac build?

I'm playing a game on PCSX-Redux, but so far I need wine to run this app. It would really help to have a native mac build so I can save space. Would it be possible?

Add savestates support

The New Look is amazing! Congratulation guys! i really love it too, but hey, how i use it? (sorry) i mean i thought i suppose to do the same thing, just extract the savestate zip and drop it inside PSXVram, but it doesn't let me do it, it keeps giving me an error about that inputfile 1mb, i really don't understand that

How to use?

https://tinypic.host/i/9NTig
Hello! I have some doubts and I wanted to know if you can help me
I am modifying the memory with Cheat Engine, but I don't understand how to modify the texture palette, there are the offsets, could you explain to me how I should modify the palettes?

Add support for 2BPP viewing mode

Some games such as Shin Megami Tensei: Devil Children Black Book & Red Book have graphics that seem to be in 2BPP format such as its text font graphics. It would be useful to have support for 2BPP since I'm not really able to properly convert exported 4BPP or 8BPP files to 2BPP.

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.