XProger / OpenLara

Classic Tomb Raider open-source engine
http://xproger.info/projects/OpenLara/
BSD 2-Clause "Simplified" License
4.64k stars 360 forks source link

Not a bug, just a well wish/thanks :) #394

Open accessiblepixel opened 2 years ago

accessiblepixel commented 2 years ago

Just commenting to say I'm really happy that you've done the work on this project. I'm very impressed with the GBA port, and I certainly appreciate the "new" design goals that you've decided to follow.

I've had TR1 on both PSX and PC, (and the others TR2-5 on the PS1) and I always thought the PC experience was reduced because it didn't have the music - which I think Nathan McCree's music is an essential part of the game! So I'm glad you've made this part of all the ports.

I didn't know where to put my thanks. If this isn't an appropriate place to do so, please move/close it (I'm not very good at GitHub :P )

I don't really know much about the GBA's architecture so I probably can't contribute much, but will certainly make sure to report any bugs if I see any as development continues.

I know this is counted as a "personal project", but are there any other ways people can contribute (other than code)?

Kind regards, Jessica

vanfanel commented 2 years ago

@accessiblepixel I had both the PC and PSX version back then, and I can say for sure that the PC version had music, and it was almost the same as the PSX music (well, the PC music didn't do some "live action" music because back then changing audio tracks caused gameplay to freeze for a second).

accessiblepixel commented 2 years ago

@accessiblepixel I had both the PC and PSX version back then, and I can say for sure that the PC version had music, and it was almost the same as the PSX music (well, the PC music didn't do some "live action" music because back then changing audio tracks caused gameplay to freeze for a second).

Odd. It never played the music in the levels for me as I recall. Like the 'Wolves' music or the atmospheric track in the first level. Perhaps it was because the release I had was the SoldOut! Software release - I remember reading that others had a similar problem, but it's a bit of an old memory now. Still, definitely fascinated by the port to the GBA, but not being very aware of it's architecture not sure I can offer much in the way of code.

Although if there's other stuff that can be helped with, I'd love to know, since i might be able to help with some of that :)

XProger commented 2 years ago

@accessiblepixel Hi, sorry for late reply and thanks for your support :)

but are there any other ways people can contribute (other than code)?

of course, after the new version will be done it'll require a lot of testing. also I plan to add graphical modding support (for optional replacement of geometry, textures and animations). So artists, testers, coders and just interesting ideas are very welcome. Also if you are non-english native speaker It would be great for new translation or review of existing one.

accessiblepixel commented 2 years ago

@XProger - thanks for the reply :)

Unfortunately I am a native English speaker so translations won't be my thing, but I can certainly test things!

If required I have a DSLite and a (somewhat esoteric) GBA Flashcard, The Supercard, although as far as I am aware, almost all of those are clones and it needs things to have their SRAM patched to enable game saves on it - however this should allow some testing on some real Ninty hardware.

I'm very impressed with how you got the audio working on the GBA without optimising it for the hardware (MVG on YouTube explained a bit about it). I 'read' Music Technology at uni and it's completely fascinating how it's implemented so far.

That might be one thing I can do actually, I could perhaps go through the original soundtrack and figure out a way to preserve sound quality within the limitations of the system, and edit the sounds and music to fit within that and mix it a bit so that it doesn't sound bad on a real portable or still pretty good in an emulator...

Although you might have to point me in the direction of the tools if I need to do anything GBA specific :)

I could also put together some 'sound alike' music/sounds if you were wanting to release a version of the engine without any copyright issues (so that people could create their own games/mods and whatnot).

I wonder also if there's a way to run two emulators together (one PSX and one GBA) and copy the input between them for comparisons and testing/bug logging? Not sure if that's useful or not but, that could highlight if anything weird happens.

Anyway, let me know if there's anything you feel I can help with. I will say I am sometimes affected by my disability, which can unfortunately make me a little unreliable some days and may need extra time with some stuff, but I'll always do anything I've agreed to :)

Hope you have a good day and that these few ideas prove useful. Honestly can't believe really that this wasn't done back in the day, it would have been awesome.... well no, it still is awesome, but even more awesome that enthusiasts can do this kinda thing now.

Kind regards, Jessica

XProger commented 2 years ago

@accessiblepixel regarding music tracks, I use IMA ADPCM format at 10512 Hz. It sounds fine after decoding into 16-bit, but GBA support only 8-bit output or 9-bit with dual-channel hack (less noisy, but not significant), So after squeezing it down to 8-bit you will hear some quantization noise at low amplitudes. I tried to add some extra noise, but no success. So I disable all ambient tracks from the original game and left only loud action tracks. But anyway I should prepare and cleanup all sound samples and tracks used by game, yes.

The idea about input sounds interesting, it'll help to find differences in implementation. I thought about this earlier and leaned towards using the original demo files, which contains only input data, so I could playback them in OpenLara... but there are only a few and don't cover all possible cases (enemies, states etc.). So input transfer idea sounds more viable. Probably the simple custom input plugin for ePSXe will be enough.

btw NDS will have the native port someday, I already experimented with it a little :)

accessiblepixel commented 2 years ago

@XProger

Ohh, I didn't mention the NDS because I was seeking a native NDS port, the NDS Lite has GBA hardware built into it and I have a slot card for it, so can do some tests on the real ninty hardware... They basically just put a GBA board inside a DS, so it's 100% compatible because it is the actual hardware :) (So useful if any testing is needed)

Let me know if I can help somehow with cleaning up the audio, I've been in lots of 'low bandwidth' situations and had to come up with ways so it doesn't sound like listening to a potato :p

Yeah - I thought that dual input might help sort out some of the finer points of implementation. I know the enemies in the game have odd quirks.

I'm not the best at playing the game myself, I used to hand the controller to my brother when it got too difficult :p

Although if we can kinda come up with a way to compare versions, we could always record inputs and play them back... or even see if we can convert some people's recorded TAS runs and see if everything behaves as expected? Might be a good way to 'reproduce bugs' too if the input "sequence" can be captured that caused it?

Speaking of comparing versions, I also have the original game for DOS, and some appropriate old DOS machines, if we need to compare those too.

Anyways, yeah, just some more ideas, I'll shh now 😋