Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Erick194

Members
  • Content count

    432
  • Joined

  • Last visited

Everything posted by Erick194

  1. @intacowetrust Thanks for checking, that must be, of course, the drop in frame rate and player gravity, you can try on the map The Mansion when you run to the throne and take the blue key. Here a look at the code of P_PlayerZMovement since the gravity is a (FRACUNIT * 4) a difference from Doom PC that is only FRACUNIT. void P_PlayerZMovement (mobj_t *mo)//L800298D8() { /* */ /* check for smooth step up */ /* */ if (mo->z < mo->floorz) { mo->player->viewheight -= (mo->floorz - mo->z); mo->player->deltaviewheight = (VIEWHEIGHT - mo->player->viewheight) >> 2; } /* */ /* adjust height */ /* */ mo->z += mo->momz; /* */ /* clip movement */ /* */ if (mo->z <= mo->floorz) { /* hit the floor */ if (mo->momz < 0) { if (mo->momz < -(GRAVITY*2)) /* squat down */ { mo->player->deltaviewheight = mo->momz>>3; S_StartSound (mo, sfx_oof); } mo->momz = 0; } mo->z = mo->floorz; } else { if (mo->momz == 0) mo->momz = -GRAVITY; //In Doom PC it would only give 0x20000, but in Psx Doom it would result in 0x40000. else mo->momz -= (GRAVITY/2);//In Doom PC it would only give 0x10000, but in Psx Doom If we divide the FRACUNIT by 2 it would result in 0x20000. } if (mo->z + mo->height > mo->ceilingz) { /* hit the ceiling */ if (mo->momz > 0) mo->momz = 0; mo->z = mo->ceilingz - mo->height; } }
  2. Hi guys, as you already know my brother [Gerardo194] and I are working on id's rpg games and everything is going wel, so we want to show you several screenshots about our progress we've got so far. These screenshots are from Doom2 RPG, Wolfenstein RPG and Ors and Elves DS version running on GZDoom. We hope you like them. Best regards :)
  3. Erick194

    PsyDoom 1.1.1 - PSX Doom port (reverse engineered) for PC

    If everything goes well, it can last between 1 month or less, because I only need (p_pspr.c | p_setup.c | st_main.c) and review other files in the hope of not forgetting anything, which I really have to test It is the distribution of the leafs and their rendering.
  4. Erick194

    PsyDoom 1.1.1 - PSX Doom port (reverse engineered) for PC

    Another function that goes hand in hand with the z_zone is the P_LoadBlocks, this reads and inserts the memory blocks of the textures and sprites back to the memory of the z_zone. enum compressFlags {Decode,NoDecode}; typedef struct psxblock_s { int size; //* including the header and possibly tiny fragments */ void **user; //*4 NULL if a free block */ short tag; //*8 purgelevel */ short id; //*10 should be ZONEID */ short lump; //*12 short flags; //*14 0 = Decode || 1 = NoDecode || >2 = Error struct psxblock_s *next; //*16 struct psxblock_s *prev; //*20 } psxblock_t; void P_LoadBlocks(char *filename)//L80023698() { psxblock_t header, *base, *block, *next, *prev; int i, file_num, data_size, size; boolean error; byte *ptr; i = 0; while (true) { if (i >= 4) I_Error("P_LoadBlocks: Data Failure"); i++; error = false; file_num = OpenFile(filename); data_size = SeekFile(file_num, 0, PSXCD_SEEK_END); ptr = (byte *)Z_Malloc(data_size - sizeof(psxblock_t), PU_STATIC, 0); base = (psxblock_t *)((byte *)ptr - sizeof(psxblock_t)); header.size = base->size; header.user = base->user; header.tag = base->tag; header.id = base->id; header.lump = base->lump; header.flags = base->flags; header.next = base->next; header.prev = base->prev; prev = base->prev; next = base->next; SeekFile(file_num, 0, PSXCD_SEEK_SET); ReadFile(file_num, (byte *)base, data_size); CloseFile(file_num); block = base; size = data_size; do { if ((((block->id != ZONEID) || (block->lump >= numlumps)) || (block->flags > NoDecode)) || (block->flags == Decode && (decodedsize((byte *)block + sizeof(psxblock_t)) != lumpinfo[block->lump].size))) { error_: error = true; break; } size -= block->size; if (size < 0) goto error_; (byte *)block = (byte *)block + block->size; } while (size != 0); if (!error) { base->prev = prev; do { if (lumpcache[base->lump].cache == NULL) { *(void **)&base->user = (void *)((byte *)lumpcache + base->lump); *(void **)&lumpcache[base->lump].cache = (void *)((byte *)base + sizeof(memblock_t)); lumpencode[base->lump] = base->flags; } else { base->user = NULL; base->tag = 0; base->id = 0; } data_size -= base->size; if (data_size == 0) { if (next) *(psxblock_t **)&base->size = (psxblock_t *)((int)next - (int)base); base->next = next; } else { base->next = (psxblock_t *)((int)&base->size + base->size); } if (base->next) base->next->prev = base; base = base->next; } while (data_size != 0); Z_CheckHeap(mainzone); return; } base->size = header.size; base->user = header.user; base->tag = header.tag; base->id = header.id; base->lump = header.lump; base->flags = header.flags; base->next = header.next; base->prev = header.prev; Z_Free((byte *)ptr); } }
  5. Erick194

    PsyDoom 1.1.1 - PSX Doom port (reverse engineered) for PC

    @intacowetrust You know, there is little left to finish recompiling PsxDoom in Native Psx, once it is finished and it works correctly, your project will advance exponentially, I only ask for a little time. As you can see in the picture all that is already converted into C/C++
  6. Erick194

    PsyDoom 1.1.1 - PSX Doom port (reverse engineered) for PC

    I will have to try that Xcode 11. From what I see I can't, it's for mac :P It is correct both PsxDoom and Doom64 have that function, but it is called Z_Alloc, here the decompilation of z_zone of both games. PSXDOOM z_zone.c DOOM64 z_zone.c
  7. Erick194

    PsyDoom 1.1.1 - PSX Doom port (reverse engineered) for PC

    @intacowetrust Hello, first of all, good job with rendering and I viewed your code from github and I see that much of it is in MIPS code. I am really interested, I wanted to compile it but it fail, it must be that I use VS2015. I currently have the complete code in C, and I am recompiling it for psyq I am still on my way to finish and it is really interesting to fuction the codes. Everything that has to do with the Williams Entertainment Sound System (WESS) is complete and works 100% in recompiled psx. Here is an example of compilation for PSXDoom with rotating enemies. @Redneckerz By the way for the Gzdoom [GEC] ME, it will change its name which will be Dzdoom (DarkZdoom).
  8. Erick194

    PSX Doom Glitching

    That yes that is a curious glitch, when I arrive in the part of the render maybe I will discover something, at the moment I have already compiled and tested a large part of the game's menu system in this new compilation.
  9. Hello everyone, thank you all for your opinions, but what really happens here is that several people offer ideas, without thinking how new things will affect the memory of the game, we must not forget that everything is handled with an approximate 1.3MB , which first uses a part to load the PSXDOOM.WMD, then structures of the lumps SPRITES, TEXTURES and also the entire structure of the lumps, the more new things are added, it will potentially affect the maps, to the point that they do not enter and have to reduce more. However, I intend to reconstruct the executable to optimize code structures and declarations, in order to recover a little more memory for the new executable, and to be able to add more content. Of course that will not happen overnight.
  10. Then @Impboy4 will take the abandoned maps of Dragonsbrethren?, if so they are yours then, since at the end of last month I contacted Dragonsbrethren and he told me that I had no interest in continuing with the maps.
  11. Well folks, even with the errors present, everything has a solution, I was researching there and I found this: https://www.pictosee.com/p/2123375289342916958_7492403336 And that makes our work (including you guys) worthwhile ;)
  12. Hmm, we don't check the maps in advance, just like you, we discover errors with the release. Since in the previous beta version I corrected certain errors before launch, one of those are the specific errors by @ mr-around in MAP15: Mission impossible, among others, but most of them updated their own maps and did not correct their errors again . @riderr3 I agree to put the info in the OP
  13. Just for asking, did you realize the music that played in Icon of Sin? Also for the PAL version the demos are of the same levels but different playability.
  14. Exactly, you can take them, I also want the entire Cabal series to be complete as well.
  15. List updated in the OP, if I miss any other let me know ;)
  16. I will take care of updating the list now, in addition, the secret maps can be selected at the warp level due to the last time in beta 2, some would have preferred to reach the secret maps through the cheat code. but for the final exit, the secret levels will not be on the list of warp levels.
  17. Hello friends, Beta 3 has been released, I hope you enjoy. Chek out the OP, I also have to add the other names of the maps in the OP but I will do so in the next few days. =)
  18. @D88M3R Hmm, that really is fatal my friend, if you want to comment more, do it in the corresponding thread as mentioned by @riderr3, and if @CoTeCiO let me know the same thing that happens to you in older computers, those are ploblems that I must correct in the future, Another thing I should mention is that this project is unique in a modified version that I made for the Gzdoom 1.9 which is not compatible with any modern update, my goal is to try to pass everything in modern versions, but that will be in the future. Tell me if your current PC can run GL and which version is Shader?
  19. Another thing that I forget, if red letters come out, it means that the music fails and presents problems in the sound and in the worst case the CD does not run the map on the real hardware. An example is with the map Impossible Mission , which if I put the music 4 "Larva Circuits", throws me red letters which would fail
  20. Before or after it doesn't matter, although the ideal is to have a map to check. An example if you have a completed map, already inserted in the CD image, you can try the music as many times as you want without recompiling the map.
  21. Exactly it is only to verify the progress of the level, and they have to add the enemies they want to put and verify that the zmalloc does not overflow. Good point.
  22. The enemies are simply on the map, but when loading, delete the flags and do not appear and will not load the sprites in MAPSPR01.IMG, therefore eliminate consumption in the memory of the psx.
×