Code Monkey home page Code Monkey logo

eurochef's People

Contributors

cohaereo avatar joshbarrass avatar muzzarino avatar swyter avatar

Stargazers

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

Watchers

 avatar  avatar

eurochef's Issues

Update ECM format

ECM format

  • Self-contained entity data?
  • Entity material transparency information
  • Fix cutout flag (should be retrieved from texture exclusively)

Blender addon

  • Additive blending
  • Scrolling textures
  • Animated textures (?)

Orbit camera pan

The arcball camera should pan on dragging rightclick across the viewport.

Propagate all errors back to app state

Currently, there are a lot of unwraps on errors or options that should be propagating back up to the app state so that it is shown as an error message instead of panicking the whole application. Notable mention: panel load functions

Feature: WGPU renderer

Using WGPU instead of glow (OpenGL) will allow Eurochef to multithread rendering, and have better platform support, especially for macOS and web.
eframe already supports WGPU, so the renderer is the only thing that needs to be rewritten, though that's no easy task.

The benefits outweigh sticking to OpenGL, but I will need to take in some further consideration before we start making the move

Hires screenshots

The base viewer should be able to queue a high quality frame capture, invoked by a GUI popup.
It should also

  • Give the option to use a transparent background
  • Not render the grid

GX has weird mesh structures

Even with spyro's GC symbols I have not been able to find how the index buffer is retrieved, nor how many indices there are

Filelist viewer (GUI)

Filelist support for the GUI. This should be separate to loaded EDBs, as we also want to be able to load files directly from the filelist view.

It would be very nice to be able to sort files by map/entity/texture etc. count
Additionally, a tree view would make the view a lot nicer, though that will take further design considerations

Wrap cursor in viewport

When rotating the camera in a viewport, the cursor should wrap to the other edge of the viewport once it tries to go past the borders (a la Blender)

Display invalid textures nicely

UXGeoTexture now implements an is_valid method. Every texture is expected to be extracted in order, so even invalid textures are included in the texture array. Invalid textures should not show properties, but should instead display a warning icon and replace the properties tooltip with [the error message]?

Xbox 360 has a weird vertex format

Following the vertex buffer there appears to be a texture coordinate buffer. This doesn't appear to work for every mesh though, as most meshes will have heavily skewed coordinates or straight up corrupted texture coordinates

Feature: Support for Rio: The Multiplayer Party Game

I've been looking at this on and off to see if this game has ever been added to the support list or if it has been mentioned and suffice to say, it hasn't in either case until now in regards to the latter. Version is unknown afaik but it can be safe to assume for now that it is 263 and I've tried testing some files but they just won't work and always prompts with this error:

panic.log

Also for the record, I am using files from the 360 port and not the PS3 port nor the Wii port either. It may be worth looking into the Wii port as well but if anything from the 360 port is anything to go by, who is to say if anything from the Wii port will work. Still, it'd be worth checking out as I have yet to even touch the Wii port yet,

EDIT: The Wii version has a lot of geo formatted crap with the movies scrambled in there along with some text stuff and a few dat's. Otherwise, it's the same overall as the other two console ports.

EDIT 2: Using this neat little wiki page I've just found, https://sphinxandthecursedmummy.fandom.com/wiki/EngineX#Games, the filelist version is 12 and the EDB/GeoFile version is 282.

'Mismatched types' error when building eurochef-cli

Hi! I was trying to install Eurochef, so I got Rust set up and ran cargo install --git https://github.com/eurotools/eurochef.git. I ended up with a mismatched types error which I have stored in this gist for brevity. From the debug log it seems that these two lines are problematic:

#[br(parse_with = parse_trigdata_link, args(trig_flags))]

#[br(parse_with(parse_late_skindata), args(&skin_data_ptr, parts_count))]

My guess is that these are simple bug fixes, but I won't send in a PR since I'm not fluent in Rust.

Feature: Support for Buffy The Vampire Slayer: Chaos Bleeds

As discussed briefly in #31, support for the Xbox/GC version(s) of this game would be great.

EDB version for this game is known to be 170.

I've done some brief testing with the Xbox version of the game as starting point for this.

What works:

  • Filelist.bin extraction seems to work perfectly.
  • Entities/meshes seems to work perfectly when using the same mesh type as Hero's Tail (EDB version 240).
  • Texture extraction is working, but (for the Xbox version at least) does not work if the data_size field is used in EXGeoTexture. An additional condition was added for this.

What doesn't work:

  • Map extraction. The entities for the map can be extracted, but at this point the program crashes. This is presumably the same as the two Sphinx games.

What hasn't been tested:

  • Spreadsheet extraction.

Support for later filelist formats?

Hi! I was just revisiting Eurochef to try extract the Disney Universe filelists I had lying around, but then I ran it and it told me that the filelist wasn't supported yet (it's version 13). I'm just opening this issue for tracking purposes, but I'd be more than happy to upload those filelists if you need them.

Unable to extract from Sphinx (PS2)

Maybe I'm just doing something wrong, but I can't seem to extract anything from Sphinx and the Cursed Mummy (PS2), despite the readme claiming it should work. I've tried the latest release, e5cbb1a and main (a5cbbd6 at the time of writing), but nothing seems to be able to extract anything. For reference, I have predominantly been testing using the *_sphin.edb files (e.g. cs_sphin.edb, mc_sphin.edb, etc.).

The CLI on main seems to be the only version to extract any sort of texture, but has thus far only produced corrupted textures and repeatedly gives the error eurochef_cli::edb::textures: Failed to read frame 0. Attempting to open the file with the GUI causes a panic with the message Vertex format for version 182 is not known yet, report to cohae!

Every other version I've tried seems to either ignore the contents of the files, or the GUI will also just immediately crash whenever I try to open something.

Am I just using the program wrong, or has there been some sort of recent regression? As far as I can tell from the readme, support for Sphinx/EDB 182 should be golden, as should extracting PS2 textures, but I can't seem to get anything to work.

Rotation gizmo

Represents the rotation of the camera. Clicking one of the 6 arms should cause the camera to snap to an orthographic view similar to how Blender does it
Pasted image 20230527185804

Feature: Filelist viewer

A filelist viewer will make searching for specific resource types a lot easier, and saves the pain of having to go through a filepicker to open a file. It will be possible to have both a filelist and EDB file open at the same time.

Blocked by:

  • EDB reader interface

TODO List:

  • GUI design
  • Further technical design

Indicate problems with textures/meshes

Option 1 (in your face)
image

Option 2 (subtler, but leaves a pointless black void)
image

Might also go for red instead of yellow since it's usually related to screwed up imports.
Additionally, these tiles will have a tooltip describing the exact reason

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.