deckarep / laffer-casino-extractor

a Python3 CLI tool to extract Larry Casino game (sprites, audio, etc) from the RESOURCE.VOL file
MIT License
3 stars 1 forks source link

Scanning the entire volume doesn't yet work #2

Open deckarep opened 4 months ago

deckarep commented 4 months ago

I tried running the code against my local copy of: RESOURCE.VOL and the code as it stands seems to choke on the first image asset which looks to be a 640x480 room.

If you run the code as-is it points to the peter texture.bin file in the textures folder and this works fine.

I'm done for today but if you want to improve on things feel free and I'll merge away. I'll try to keep the code in a building state going forward.

/cc @Doomlazer

Doomlazer commented 4 months ago

Let's keep the hacked_offset and maybe add those emotions into the JSON in a format your game could parse. Then you wouldn't even need to export a separate file.

deckarep commented 4 months ago

I have added a few additional characters of the small portraits to the hack_offsets.json file. There's a possibility that these lowres char portraits were not used in the game at all. Perhaps the devs started with them, but then ended up creating better bigger sprites. Discoveries like this are cool especially for unused stuff or characters that never got used.

Doomlazer commented 4 months ago

I was playing the game in a VM and so much of the game is missing because online play is dead. I wish the gift store, front desk, etc. still worked.

Check out audio.vol/347.wav

deckarep commented 4 months ago

I know, it’s a bummer. Pretty much the only thing working are the games in offline mode.

I thought I read somewhere that there was a group of people trying to get online mode working again somehow.

Also: I’ll probably merge the hacked-offset branch to main soon. Yesterday I tried to spend some time on getting the backgrounds working but didn’t have any success. I’ll probably end up pivoting back to my card game soon.

Edit: Haha, on audio 347.wav - I'm pretty sure it's Jan Rabson trying to do a combo Larry/Elvis style voice. That's awesome.

deckarep commented 4 months ago

At some point I'm going to rename this repo as: larry-casino-extractor. I don't know why I called it laffer to begin with. Anyways, I'm not sure if renaming will cause any issues for your fork or whatever but just giving you a heads up.

Doomlazer commented 4 months ago

I made a small accidental discovery with the backgrounds.

In DoRLE(), changing: if singleByte == 0x01: to if singleByte == 0x00: and nothing else, improves the backgrounds slightly. You can start to see recognizable areas in several backgrounds. Most obviously in series 3:

Screen Shot 2024-07-28 at 4 00 41 PM

So far I have know idea why this change produces better results, but it seems worth investigating.

deckarep commented 4 months ago

Wow, that's interesting...perhaps the backgrounds are just using a different RLE encoded scheme. It's entirely possible.

This will definitely help for figuring out the rest of the missing pieces on the background.

Doomlazer commented 4 months ago

It's strange that the backgrounds would be so different.

I've also been looking at the audio files for the characters. There is a ton of lines. They seem to be broken up into games with lines for each characters. I have some notes, but I'll wait to share those until I have a somewhat complete list.

Doomlazer commented 4 months ago

I'm getting slightly better results now with this code:

0x01 do nothing (discard byte) 0x02 Literal run length (same as non-background images) 0x08 single color run (same as non-background images) anything else, treat 'singleByte' as a single pixel from the color palette.

sprite_3_0

Doomlazer commented 4 months ago

FYI, I'm sure 0x02 and 0x08 are correct because I've counted the runs and they match up perfectly with some of the correct graphics. I'm not so sure about 0x01 or what to treat as a single pixel. I think there are some other values < 0x08 that need special handling.

deckarep commented 4 months ago

We might need to add a 0x04 singleByte command and then figure out what it does.

The reason I'm thinking that is because we have a 0, 1, 2 and 8 so they could be power of 2.

You seem to be getting really close to cracking it which is awesome...I know it's tedious too!

Doomlazer commented 4 months ago

yeah, I think it can be solved; I just haven't had the energy to work on anything outside of work the last few days. I'll give it another go this weekend.

deckarep commented 4 months ago

No worries...I've had a series of things pop up which is taking all of my free time. I haven't even been able to pick back up my game either.

But I'll do a merge to main...I'm happy with our progress and if you want to take it to 100% with the backgrounds and odds and ends please feel free to.

Solid work!

deckarep commented 4 months ago

hacked-offset-branch code has been merged back to main.

Doomlazer commented 1 month ago

Hey, how's it going?

I've made some progress this week on backgrounds in the "backgroundsExperimental" branch - there's some photos in the readme so you can see where things are at with doBackgroundsRLE().

I feel like I've hit a point of diminishing returns and wonder if you want to take a look? If not, that's fine. I'll probably keep pecking away at it intermittently because it's getting fairly close.

deckarep commented 1 month ago

Hey @Doomlazer 👋,

Nice to hear from you and I’m happy to see you make progress on the backgrounds. It always annoyed me that the backgrounds were I think the last of the assets.

It does look like you’re getting very close…deciphering the binary is painful but I’ll probably not pick it up at this point in time as I’m on a tight deadline with a few projects at the moment.

But I graciously say at least not right now but perhaps will take a look again in the future. Any progress you make is always appreciated!

I hope you’ve settled into the new gig btw!

Doomlazer commented 1 month ago

Yeah, I guess I've settled in a bit. Still not much time for personal projects :(

Are you still working on your card game?

deckarep commented 1 month ago

Unfortunately, I shelved it for awhile but I really, really want to get back to it when I have the time. Once we made progress on Larry Casino, and got the faces extracted I started putting together character objects and was actually getting the help of my daughter with it. The image editing side of things…then I pivoted and haven’t touched it since.

But I definitely want to go back to it. I spent a lot of time studying the Hoyle games too for inspiration.

Doomlazer commented 1 month ago

I hope you get back to it eventually; seemed like a cool project. As someone with multiple unfinished projects myself, I know how things are though. You'll get back to it when the mood strikes you.

deckarep commented 1 month ago

Thanks! I appreciate it.

And yea, too many unfinished projects for sure but I also think this one has a lot of potential for several reasons. Hopefully I can pick it back up before 2024 is over. If I do I’ll let you know.