looking like it'll be the deform method then since i often use Offset/Scale/Rot enough that it'll be better to use the deform vars for storage.
Recent community posts
is it at all possible to get the tag that is being read on a shape as a string on it's own via variable? Asking because i want to have the ability to have a tag be readable and to be able to read a number from the tag.
instead of doing
if shape:ContainsTag("Z30") then shape.Offset.z+=30 end
and making new tags in that vein for each microscopic change i might want to make, instead i want to tag something ZU60 and something else ZU30 and it'll add the 30 and 60 to each respective object as tagged. to do this i need to be able to read the tag that's being referenced at that moment, find the numbers in it, and then once i've been able to do that, convert the string number to an int number that i can then pass onto shape.Offset.z+=. but i can't read the tag that's referenced to do a string.match or string.find on it for numbers as far as i know unless it's undocumented.
if it's not possible to expose that tag to being read as a string whenever you invoke a shape:ContainsTag currently, may i humbly request that it be made possible since i assume in order to read the tag, you have to store the input for the ("") anyway and that it'd make it easier to do cleaner script code while also allowing for flexibility in tagging.
Modified it slightly to put the UI on the UI layer via scripting and to also shift the UI up to the top of the screen
if you don't want the UI at the top of the screen just go into the base script and change
"shape.Offset.y=200" to "--shape.Offset.y=200"
(yes, i do still read this place geod :P, life just gets in the way and i've seemingly run into enough random things on the WIP's i've posted that i can't solve at the moment)
i didn't put an excessive amount of time into the specific customization of some of the ground because i was more trying to get the actual layered effect on the objects working due to that being the hardest part. so only so much ground is done. but with my scripts in place for both a scrolling ground plane where appropriate and the objects, tweaking things is now down to tiles, patterns and tagging things right unless small issues pop up with the scripts themselves.
am i using it wrong? with Rad Racer i'm trying to get a clean UI setup but the roadside has a habit of being weird whenever the player crashes onto the side of the road. I've tried highlighting the offending tiles and making them a seperate pattern but it instantly reverts to being glitchy as soon as it gets chance. and it is starting to piss me off. i've been hammering away at this for a long time but each time i try to get anywhere with it, the same issue comes up.
Have been trying to work on some other projects but in my testing 3 games experience missing shapes:
all 3 sets of screens taken in the same scenarios. so it appears your 3D shape algorithm is breaking somehow on these 3 games or that the algo isn't even getting the shapes from the emu portion of the code?
and another thing on startropics 1 and 2 is that the save feature ingame is broken so it says it is saving but it does not save at all.
i would be interested in the idea of script-controllable camera movements but partially because i'm curious how the whole sort of flashy "auto-rotating" camera thing that i'd try to script would work out for this.
Figured i'd throw my skills at something else that might be interesting with the scripting work i do. how's about turning a flat snooker game into a fully 3D one? if anyone wants to muck around any further then it's up to them but hey, nice to be able to use it on something more sedate. I did also do a chessmaster 3dn at one point but i'm gonna redo it.
Also: Check the scripts for improvement on how i positioned the Y/Z field.
I just got my iPega 9068 working again after some weirdness with the analogs and i was curious would phones and things like that be strong enough to support 3DNes and maybe the VR stuff via cardboard? Unity being on android should work fine so if there was a barrier it'd be more "would there be the hardware to run it" and "would you want to work on it?" (i understand if you wouldn't but i figured it'd be better to ask than not to ask)
glad to know my weird experiments on things helped spark some sort of solution, especially since i'm finding less weird stuff to experiment with that i know is doable as is (exerion being an odd thing to try and work with and solstice being an example of screwy tile work getting in the way of things)
damn that's good. i notice the rotation and stuff i did isn't in there but that's fine because most of the stuff i do with scripts is on a testing basis anyway. did my attempt inspire/help you to get it going again?
this is just one of those ones that were the equivalent of "throw something until it sticks". and this one did work but i didn't want to upload it literally just after i had just uploaded chase H.Q. either way, this works well enough that you can probably just tweak bits and it'll be done.
also: don't try and take some games on (hint: solstice will be night on impossible at all because of it's tile arrangement but that will be another thread entirely).
me being the fool that i am, decided to work on trying to modify your 3dn. while nowhere near perfect (jumping being a problem still but more on that later), this is how it came out.
that jumping problem? my only idea on that is to use the Z position of the shadow itself and then use that to work out where on the Z plane the bike itself should be since logically the shadow should be underneath the bike. plus this modification makes the ram mapping issue moot mostly. Edit: fixed a couple of errant ramps and excluded any air tagged elements from the actual y algorithm (neither change reflected in the video)
either way, give it a go and see if my modification has made it easier for you to handle things.
i've not gone very far into the game myself as far as playing so you'd be best off just starting from the beginning if you want to try it out but i'll add the state to first post anyway. and what's the syntax for clipping? Clipping=8, Clipping.y=8 ? once i have that down i will be able to note it down in my big text file of reference material (including scripts). if you want to see said txt at some point to find out what i found useful to note down for myself, you can ask on here or discord (since you have me added on there) :)
the 3D slant itself works a treat and because the sprites are mostly together there's not much issue with split-tiles. however, i'll probably wait until some sort of texture import/export is done for this one because getting the buildings in full 3D would be a hell of a task with the existing texture editor.
Edit: added Savestate on geod request
so that's where i was going wrong. I'd suggest putting notes into the documentation on small bits like that where relevant though since things like that will help anyone else wanting to try and script for this.
well then, thanks :) trying to figure the stuff out was something i took longer to figure out than i'd like to admit overall but i got there and cleaned up the code enough that it doesn't look like an absolute mess.
it just always seems very intermittent as to when hex addresses work for me in some instances. and on WriteMem it tends to not accept values to write like 0E or 1E but accepts E on it's own (the error with the previous examples being malformed number error). is that just me doing something wrong or is that another thing entirely like the address has to be in hex but the value to write has to be in decimal?
i suspect that if there's multiple shadow sprites you could use tags and then in the code have tags change y things accordingly? i did consider trying that in RCR but it'd be too inconsistent in that considering how sprites got split up in that compared to maybe this. plus this seems like there's less sprites to tag here if you were to try that approach anyway.
edit: by this i mean multiple shadow sprite tags like maybe "shadowground" and "shadowair", then taking slightly different action from ramps by using the said tags.
After an extensive rewrite of the field handling, i am proud to say that the functionality of both the road and the cars are now working! i'd have to tidy up some of the 3d shapes but everything is being auto-layered via script so it won't look stupidly out of place. oh and there's a cheat script in place that you can easily disable.
rename as needed.
edit: got to reupload it
Edit 2: as of further testing there's very minor bugs but still very usable. 3dn
Edit 3: screenshot added
well then. shame that i doubt these will help as much as i'd like since the issue i'm currently running into is instant death (might have to patch ASM for that but i'll be seeing how i can do that via scripts since all of my patching of ram is tending to be via Script:WriteMem rather than patching GG codes into the roms)
Edit: FCEUX worked well for making sure i could get the codes into hex addresses at least so i'll give them a shot since the infinite jump code might be useful after all.
Edit 2: Nope, can't get the codes even going because trying to get them in via WriteMem just breaks things and i'd rather not patch my rom file.
i think i've run into the same issue in further probing with Road Fighter that you describe with the rippling effect and i don't have a solution for it either. there again i've been doing a lot that i haven't been uploading as well because they are too messy to show and have run into some weirdness that i can't solve due to game tile weirdness (exerion, rad racer, Mystery World Dizzy).
As for the first question, there's a lot of stuff that you might be able to change with scripting in my experience (still not as good as geod's considering things but i'm getting there) but how you change it might depend on what is readable and writable as far as functions (again, i refer to geod's wisdom there)
I've been thinking on some things and thus i know there's a 3dn file out there for this already but i wondered if i could use the work i've done on RCR in any other games and it actually work without any problems. as it turns out, yes!. so while very incomplete and buggy, this is my initial work on getting this to work in third person via playfield manipulation if anyone wants to either try it or improve upon it.
e.g. tga or some sort of commonly readable uncompressed format so edits to some things can be done easier in external tools then reimported into 3DNes since the editor for patterns as is not terrible but the inability to delete a large swathe of bigger bits of pattern work without going in and using the pen/fill on tiny areas that have a lot of seperated pixels is kind of tedious where it's needed.
plus i figure that i'd be harder to add a select tool into the existing editor than to add the possibility of trying to get the patterns into an external image file, edit them with existing software (paint.net/photoshop) and re-import them.
Beaten the first boss, got some way to the second but the difficulty curve of the game is making me want to throw something out of the window so i throw in the towel at the moment.
UI-wise, most UI stuff is sorted, and everything up to the point of my last savestate (BK2.sav) "should" be done. and the scripting side of things is relatively simple when compared to zelda or river city ransom so i ran into no headaches with the modifications themselves, only how difficult the game is, even on easiest.
massive mess right now because all i've really worked on is the scripts. i have things moving on the Z axis but i have these troubles:
1. Determining jumps without memory addresses (so i can apply it to multiple objects at a time without laborious tagging and duplication of scripts to adjust memory addresses). I could do it by animation shapes but even then, it wouldn't work entirely correctly afaik
2. Adjusting multiple sprite shape offsets without duplicating scripts or massive branching complications even on the player character alone. as is, things move on the X and Z axis in the 3dn file but the individual elements of the sprites do not join, instead they go one after the other (check the file and see what i mean). the main reason for this is because i have a static high and low variables set because i see no way of getting the highest and lowest possible numbers for an individual sprite shape and adjusting accordingly, meaning every sprite shape is at the same level even though the top, middle and bottom of the player character shapes have different y coordinates and different highs and lows for it to be even and join up right.
that works for it but had to do two different variations since the sub stage split up into two. and i did get the entire stage done earlier. THEN LOST it so i'm not going back to it for the second
what eventually got it reading anything at all was to enter Script:ReadMem(B9). but now i'm running into the issues of:
1. setting z1 not having any effect on object position at all.
2. the fact that when y1 is set to read from B9, it keeps spitting out numbers that are inconsistent with the information in the linked FCEUX lua repo (constantly changes between higher values than it should and zero even when the player is standing. gonna investigate more in FCEUX myself just to see if there's something i'm missing though. because applying the value from B9 to the shape.Offset.Z of the player sprite, it flickers between way out into the field and back to where it was.
Edit: okay, i solved most of that. the trouble is now i can't rely on memory addresses because if i want it to apply to enemies there's too many memory addresses i'd have to look up per the fact that there's multiple enemies. and also items. i'll post my current 3dn in the WIP section but unless you can get certain states without memory address reliance, i think i'm probably gonna only poke at it every so often.
okay, coming back to it every now and then there's been one major issue with the scripting that i cannot get past: i can't seem to get ReadMem to even work. without quotes in the brackets, 00B9 is seen as a malformed number and with quotes inside the brackets, i get an error about trying to index a null value. I've tried appending ReadMem with both Script. and ScriptManager after having once again looking through the scripting manual itself. am i doing something wrong or have i just stumbled upon a bug?