• What are you working on? v67 - March 2017
    3,527 replies, posted
Additionally was desperately looking for text in a hex editor only to realize that Pokemon doesn't use ASCII http://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Red_and_Blue:TBL
Not sure about the GB, but some ROMs may also use compression. And for games that use ASCII, you can try 'strings' on them.
more LoL related stuff https://my.mixtape.moe/viadta.mp4
Additionally was desperately looking for text in a hex editor only to realize that Pokemon doesn't use ASCII Pokémon Red and Blue I know Pokemon GSC is compressed
been putting this off for longer than i care to admit, but i finally got around to adding something as fundamental as ray casts to the engine. if you're familiar, this is the equivalent of UTIL_TraceLine in source and Physics.Raycast in unity https://files.facepunch.com/forum/upload/145623/8d1e302c-3678-4dcc-b838-91e77e123b41/2018-05-04 13-59-50.mp4
Deforming geometry based on pixel brightness of the video texture, looks kinda neat https://www.youtube.com/watch?v=1FKP9xeCLBs
https://files.facepunch.com/forum/upload/261911/4c2ab0a2-8592-4b85-a212-7ee159d3e324/parallax.mp4 Parallaxing scrolling background using a framework I've not spent a whole lot of time with. #ItsSomething
https://pred.me/videos/2018-05-04_18-18-39.mp4 Added some fluff to a small game I made a while ago Collision code is a little wonky tho, any of you know of a good source on that? Right now I simply "return a.BoundingBox.Intersects(b.BoundingBox);" to check for collisions but its not perfect. Made in MonoGame by the way
I looked through the drawing a memory copying functions of Pokemon Red's source and I feel like I understand a lot more about the gameboy. I still feel totally lost when it comes to actually doing this myself, but I think I'm getting closer to drawing a simple sprite on the screen and even making it move around or flip
Thinking of making my own ASM editor/Hex Editor using ncurses so I can highlight GB specific things like color pallettes. That way I can draw sprites in octal and have them show up right there so no 3rd party application is needed
(un)fortunately that's out of my hands i left loiste after we finished working on infra
Been fleshing out my tiny game a fair bit and its starting to shape up! https://pred.me/videos/2018-05-05_14-58-37.mp4 Fixed the wonky collision code and added some sprites that my SO made for me. And exhaust fires! For some reason the stars stop spawning in once there are exactly 400 objects on screen which is odd but I'll fix that at some point.
https://files.facepunch.com/forum/upload/603/3c649ed0-84f8-476a-b443-d43ab1bae499/ParticleSystem.webm My go at a particle system, using instanced rendering and all movement is handled in the shader. So no cpu calculations for the gravity or spawning positions. So far I am very happy!
Basically, I have a bunch of uniforms (Like gravity, area, lifespan, time etc) that can be updated before each individual particle is rendered. Then in the vertex data, I have instances of random values, generated when the particle is created.That way, the gravity will be the same for all vertices in the same particle instance. In the shader, I just had to find the local time of the particles current cycle (Depending on the time and lifespan). Once I have the local time, I just apply that to every calculation that affects movement. #version 420 layout(location = 0) in vec2 position; layout(location = 1) in vec2 texcoord; layout(location = 2) in vec4 random; //Per instance out vec2 Texcoord; uniform mat4 view; uniform mat4 projection; uniform mat4 model; uniform float time; uniform float gravityX = 0; uniform float gravityY = 0; uniform float gravityZ = -0.1; uniform vec2 areaX = vec2(-20, 20); //min, max uniform vec2 areaY = vec2(0, 0); //min, max uniform vec2 areaZ = vec2(0, 0); //min, max uniform float lifespan = 5000; uniform float lifespanVariance = 500; float setBasicArea(in vec2 area, in float random) { return area.x + ((area.y - area.x) * random); } void main(void) { float actualLifespan = lifespan + (random.w * lifespanVariance) - lifespanVariance; float localTime = mod(time + (gl_InstanceID * lifespan), actualLifespan); //Starting position float x = setBasicArea(areaX, random.x); float y = setBasicArea(areaY, random.y); float z = setBasicArea(areaZ, random.z); //Applying gravity x += (pow(localTime, 1.5) * 0.001) * gravityX; y += (pow(localTime, 1.5) * 0.001) * gravityY; z += (pow(localTime, 1.5) * 0.001) * gravityZ; mat4 translateMatrix = mat4(1); translateMatrix[3].xyz = vec3(x, y, z); Texcoord = texcoord; gl_Position = projection * (view * translateMatrix * vec4(0, 0, 0, 1) + vec4(position.x, position.y, 0, 0)); }
you could also potentially abuse NV_Texture_Barrier and store all particle data in a texture (or maybe even SSBOs)
First control test for our Ingame Map Editor for Battlefield 3. http://powback.com/u/cea8615a78f7821a4882e75e94fa846a.mp4
Gonna read up on formal languages to make an assembler with a bunch of super neat features for the gameboy
Urg, you might know the amount of tools i had to use for rip lol models, are you going to write a fbx exporter sometime? I would love to keep working on my lol game or even more, export and create content for garry's mod (Already did illaoi's abilities)
I'm not sure I got the anm format right, still trying to figure out some formats. No promises!
I just had a 3 hour long mini-heart-attack thinking my SSD died. As a last resort I booted into windows to see if my issues persisted there (every read/write took up to 10 seconds to complete), and then it was magically fixed. I suspect my SSD has a firmware bug. This came just 2 days before a big event I'm VJing at. That's some timing.
Just a heads-up since you're in the US: Autodesk likes to C&D people who write third-party FBX exporters.
It'd be hosted in another country with no relation to me
The Blender Foundation isn't based in the US. I'd also like to see a source on the c&d claim tho.
I'll have to look it up again, since it's been some years since I last looked into this. Also yes, Blender can do pretty much what they want since they're in the EU. It's even legal to use a decompiler to achieve format compatibility here, regardless of what the product license says.
you can reverse engineer the format without breaking the license terms, I've done this for several things that poorly implement the agreements. I suppose its a bit goofy to loophole this much but yeah. I've also been in touch with Rioters regarding my LoL stuff and their legal page allows this sort of thing so I'm safe on both fronts
Switching between scenes with a midi pad thingy https://www.youtube.com/watch?v=uS1EcOofyvQ
I've come to accept that maybe no one will use my software. But if I'm happy with it, maybe that's good enough. 184 days since last release, Grid v7.4.0. https://github.com/Planimeter/grid-sdk/releases/tag/v7.4.0
https://files.facepunch.com/forum/upload/133076/0abe31d4-5951-4b34-b7db-17ab45f888c1/image.png Good stats, though.
Pygame. def ParseEntities(entities: list) -> dict: ret = {} for ent in entities: animations = {} for key, anim in ent["Animations"].items(): frames = [] for i in range(0, len(anim["Frames"])): frames.append(animation.Frame(pygame.image.load(anim["Frames"][i]), tuple(anim["Offsets"][i]))) animations[key] = (animation.Animation(frames, anim["Name"], pygame.Rect((0, 0), tuple(anim["Rect"])), anim["Delay"], anim["Startframe"], anim["Loop"])) ret[ent["Name"]] = (entity.Entity(animations, ent["DefaultAnimation"], important.Coordinates(ent["Coordinates"][0], ent["Coordinates"][1]), ent["Direction"]))
https://files.facepunch.com/forum/upload/603/cd3b4e0d-3cd3-45d2-b70c-01171a2fc0ef/Particles2.webmvp8.webm Particles attached to other objects. It does mean I have to get the global rotation of the parent before rendering the emitter itself, but it looks really nice.
Sorry, you need to Log In to post a reply to this thread.