Dead Or Alive 2: Final (RELEASE!)

Moderators: pcwzrd13, deluxux, VasiliyRS

Green Ranger
killer
Posts: 273

Re: Dead Or Alive 2: Final (RELEASE!)

Post#181 » Sun Nov 06, 2022 3:57 pm

DreamcastFreak wrote:I know this is probably impossible, but i gotta know is there any way to take models from other games, and put them in doa2 le? Would love to see vf4, tekken 4/5, and soul calibur characters on DC!

Best thing that can be done is to mod the pre-existing character models of DOA to look like the characters you want.

Dirge Of Ram wrote:Now you can bring in move sets like Christie & Brad Wong over from Doa3.

Too buggy. In my video for example with Helena using Christie's moveset, while some moves do connect with the opponent, many others do not and will result in some wild glitching. Throws and tag team style stuff won't work well either (or at all).

Dirge Of Ram wrote:India & Raidou, I really like to see them in action one day hopefully but again they maybe won't gel in Tag Mode together.

In the past I had gotten the India & Raidou models to load in DOA2 but their parts were jumbled. I didn't investigate it much further as I wasn't sure if anything else could be done to improve upon it.

User avatar
mistamontiel
Shark Patrol
Posts: 1959
Contact:

Re: Dead Or Alive 2: Final (RELEASE!)

Post#182 » Mon Nov 07, 2022 2:17 am

Me lads what is 'final' o.0

I've seen+witnessed close to a dozen mod downloads this-thread n seem being no more than costumes

Salute

User avatar
Dirge Of Ram
Graffiti Grind
Posts: 318

Re: Dead Or Alive 2: Final (RELEASE!)

Post#183 » Mon Nov 07, 2022 10:38 am

Entirely up to Mr. Green Ranger if you want to make renewed edit on the title thread. Add in The New 28 so we all can get more people aware what's been happening right here.

The Whole Costume Department, pretty much done on my end on both builds. I don't have the right resourceful graphical tools on my low end computer. No Blender due to needing to have this latest Open graphic card thing, I was so disappointed. Wanted to view the textures but so far unsuccessful, why waste my time on this!

Assume you got the India/Raidou files from the Demo Disc Files at that time, shouldn't be surprised you had something going long before. Didn't know myself until....

Dreamcast_Magazine_GB_0040.jpg


Tomonobu Itagaki words on the below page. 12 Characters, no comment on hidden ones. 12 - 15 Stages what we all know be the PlayStation 2 levels. Which was very likely going to be all on there, the Bamboo Stage I mean come on.

Test Zone 1 & 2, Snowing Miyama and the Desert stages, made up for this on the Story Mode. I removed main Danger Zone from Versus Mode at least too.

Funny enough the Test Zones actual names are The Editor Stage & The Undulation Checker. Renewing on information so link below to Free Step Dodge, great posts on there even from years back.

https://www.freestepdodge.com/threads/d ... ssion.726/

So many links but I'm happy to have more backs ups available. Thirteen Chapters so far, the recent three chapters to me are the ones to play today.

Chapter Fourteen, most definitely on just for anyone helping getting this mod series out there to more players.

https://archive.org/details/@cpldwaynehicks11

AyaneKasumiCode.jpg


The Blue Cave.

User avatar
ryu_highabusa
shadow
Posts: 13

Re: Dead Or Alive 2: Final (RELEASE!)

Post#184 » Tue Nov 08, 2022 10:58 am

VincentNL cracked DOA2's CHR.

You can import the models into Blender 2.83 LTS or Blender 2.90 with Vincent's NaomiLib add-on found here: https://github.com/NaomiMod/blender-NaomiLib

DOA2 CHR Format details: https://github.com/NaomiMod/games-Extra ... rchives.md
QuickBMS Unpacker Script: https://github.com/NaomiMod/games-Extra ... packer.bms
QuickBMS Application Homepage: http://aluigi.altervista.org/quickbms.htm


DOA2 CHR Format details

Code: Select all

# Dead or Alive 2 (Dreamcast) .CHR archive

DOA2 use `.CHR` archives to store model and partial PVR header data. Actual image data is located in the corresponding `.BIN` file.

# Header data

|Address   |Length|   Description|
|---------|------------|---------------|
|0x00   |0x04|   HEADER SIZE|
|0x00   |0x18|   HEADER DATA|
|0x04   |0x04|   TEXTURE POINTERS|
|0x08   |0x04|   MODEL POINTERS|
|0x0C   |0x04|   TOTAL MODELS|
|0x10   |0x04|   TOTAL TEXTURES|
|0x14   |0x04|   PADDING|


# Model pointers

|Address   |Length (hex)|   Description|
|---------|------------|---------------|
|0x00   |0x04|   SPECIFIED OFFSET - BASE ADDRESS `+0x18`|

* Please note base address is always the first model pointer.
i.e.
First pointer value is `0x0000400C` , the real address is calculated:
(`0x0000400C - 0x0000400C`) + `0x18`

# Texture pointers

They refer to a corresponding .BIN file, which is an headerless PVR data archive.
Each texture header is split in 3 chunks 0x4 bytes long each:

|Address   |Length|   Description|
|---------|------------|---------------|
|0x00|   0x04| PVR Image size |
|0x04|   0x04| PVR Pixel type |
|0x08|   0x04| SPECIFIED OFFSET - BASE ADDRESS|

* Please note base address is always the first texture pointer
i.e.
First pointer value is `0x0000400C` , the real address is calculated:
`0x0000400C - 0x0000400C`




QuickBMS Script

Code: Select all

#----------------------------------------------------------------------
# Dead or Alive 2 (Dreamcast) .CHR Unpacker
#
# *Script by VincentNL  06/10/2021
#
#
#----------------------------------------------------------------------

# TEXTURES_LOOP

set MEMORY_FILE2 binary ""
set MEMORY_FILE3 binary ""
set MEMORY_FILE4 binary "\x47\x42\x49\x58\x08\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x50\x56\x52\x54"    # GBIX+PVR header
set MEMORY_FILE5 binary ""


get name basename
String pvr_container P "%name%.bin"    #
open fdsE "pvr_container" 1            # Open bin file to get pvr texture data
get binsize asize 1

goto 0x10
get total_tex long   #total textures
goto 0x8
get header_offset long  #where size, pixel data and lenght are stored



xmath base_address "header_offset+0x8"
goto base_address
get base_address long

goto header_offset

Math A = 1



for loop


    #print  "--------TEXTURE %A%:"
     savepos currentpos
     get tex_size long
     
     #print "tex size: %tex_size|x%"
     

     log MEMORY_FILE2 currentpos 0x4
     math currentpos += 0x4

     
     get pixel_type long
     #print "pixel_type: %pixel_type|x%"
     

     log MEMORY_FILE3 currentpos 0x4
     math currentpos += 0x4

     
     
     get PVR_start long
     Math PVR_start -= base_address
     #print "PVR_start: %PVR_start|x%"
       
       if A < total_tex
      
      
           xmath nextpos "currentpos +0xc"
           #print "next PVR start: %nextpos|x%"
           
           goto nextpos
           get PVR_end long
           
           Math PVR_end -= base_address
           #print "PVR_end: %PVR_end|x%"
           
           Xmath PVR_size "PVR_end-PVR_start"
           #print "PVR_size: %PVR_size|x%"
         
         #print  "-----------------"
           math nextpos -= 0x8
           goto nextpos
           math currentpos = nextpos
         

       else
         
         Xmath PVR_size "binsize-PVR_start"
         #print "PVR_size: %PVR_size|x%"

         break

      endif
           
     
   
    xMath PVR_size_val "PVR_size+0x8"
    PutVarChr MEMORY_FILE5 0 PVR_size_val Long
   
    append
    log MEMORY_FILE 0 20 -4
    log MEMORY_FILE 0 4 -5
    log MEMORY_FILE 0 4 -3
    log MEMORY_FILE 0 4 -2
    log MEMORY_FILE PVR_start PVR_size 1
    append
   
    get tsize asize -1
    String PVR_NAME P "%name%_tex_%A%.pvr"
    log PVR_NAME 0 tsize -1
     
     Math A += 1
   
    log MEMORY_FILE 0 0
    log MEMORY_FILE2 0 0
    log MEMORY_FILE3 0 0
    log MEMORY_FILE5 0 0
   

next loop


# MODELS_LOOP


Math B = 1
get name basename

goto 0xc
get total_models long   #total models
goto 0x4
get models_pointers long
goto models_pointers

get base_address long

math model_offset = models_pointers


 for loop2

      String modelname P "%name%_model_%B%.bin"
      goto model_offset
      get model_start long
      xMath model_start "(model_start-base_address)+0x18"
     
        if B < total_models
      
          get next_offset long
          Xmath model_end "(next_offset-base_address)+0x18"
        Xmath model_size "model_end-model_start"
        log modelname model_start model_size
         

      else
       
        xmath model_end "models_pointers-0x8"
        Xmath model_size "model_end-model_start"
        log modelname model_start model_size
       
        break

       
        endif
      
      
     Math B += 1
     Math model_offset += 0x4
    
 next loop2


Blender Batch Import Script

Code: Select all

#Script taken from https://blender.stackexchange.com/questions/17817/how-do-i-batch-import-one-format-then-export-to-another
#Adapted to work with NaomiLib importer: https://github.com/NaomiMod/blender-NaomiLib

import os
import bpy

path_to_stl = os.path.join('Folder Directory Here', 'Subfolder name here')


file_list = sorted(os.listdir(path_to_stl))


stl_list = [item for item in file_list if item.endswith('.bin')]

for item in stl_list:
   path_to_files = os.path.join(path_to_stl, item)
   bpy.ops.import_scene.naomilib(filepath = path_to_files)



Custom Model Imports:
Image


Blender:
Image

cloofoofoo
Dreamcast Swirl
Posts: 534

Re: Dead Or Alive 2: Final (RELEASE!)

Post#185 » Tue Nov 08, 2022 12:39 pm

ryu_highabusa wrote:VincentNL cracked DOA2's CHR.

You can import the models into Blender 2.83 LTS or Blender 2.90 with Vincent's NaomiLib add-on found here: https://github.com/NaomiMod/blender-NaomiLib

DOA2 CHR Format details: https://github.com/NaomiMod/games-Extra ... rchives.md
QuickBMS Unpacker Script: https://github.com/NaomiMod/games-Extra ... packer.bms
QuickBMS Application Homepage: http://aluigi.altervista.org/quickbms.htm


DOA2 CHR Format details

Code: Select all

# Dead or Alive 2 (Dreamcast) .CHR archive

DOA2 use `.CHR` archives to store model and partial PVR header data. Actual image data is located in the corresponding `.BIN` file.

# Header data

|Address   |Length|   Description|
|---------|------------|---------------|
|0x00   |0x04|   HEADER SIZE|
|0x00   |0x18|   HEADER DATA|
|0x04   |0x04|   TEXTURE POINTERS|
|0x08   |0x04|   MODEL POINTERS|
|0x0C   |0x04|   TOTAL MODELS|
|0x10   |0x04|   TOTAL TEXTURES|
|0x14   |0x04|   PADDING|


# Model pointers

|Address   |Length (hex)|   Description|
|---------|------------|---------------|
|0x00   |0x04|   SPECIFIED OFFSET - BASE ADDRESS `+0x18`|

* Please note base address is always the first model pointer.
i.e.
First pointer value is `0x0000400C` , the real address is calculated:
(`0x0000400C - 0x0000400C`) + `0x18`

# Texture pointers

They refer to a corresponding .BIN file, which is an headerless PVR data archive.
Each texture header is split in 3 chunks 0x4 bytes long each:

|Address   |Length|   Description|
|---------|------------|---------------|
|0x00|   0x04| PVR Image size |
|0x04|   0x04| PVR Pixel type |
|0x08|   0x04| SPECIFIED OFFSET - BASE ADDRESS|

* Please note base address is always the first texture pointer
i.e.
First pointer value is `0x0000400C` , the real address is calculated:
`0x0000400C - 0x0000400C`




QuickBMS Script

Code: Select all

#----------------------------------------------------------------------
# Dead or Alive 2 (Dreamcast) .CHR Unpacker
#
# *Script by VincentNL  06/10/2021
#
#
#----------------------------------------------------------------------

# TEXTURES_LOOP

set MEMORY_FILE2 binary ""
set MEMORY_FILE3 binary ""
set MEMORY_FILE4 binary "\x47\x42\x49\x58\x08\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x50\x56\x52\x54"    # GBIX+PVR header
set MEMORY_FILE5 binary ""


get name basename
String pvr_container P "%name%.bin"    #
open fdsE "pvr_container" 1            # Open bin file to get pvr texture data
get binsize asize 1

goto 0x10
get total_tex long   #total textures
goto 0x8
get header_offset long  #where size, pixel data and lenght are stored



xmath base_address "header_offset+0x8"
goto base_address
get base_address long

goto header_offset

Math A = 1



for loop


    #print  "--------TEXTURE %A%:"
     savepos currentpos
     get tex_size long
     
     #print "tex size: %tex_size|x%"
     

     log MEMORY_FILE2 currentpos 0x4
     math currentpos += 0x4

     
     get pixel_type long
     #print "pixel_type: %pixel_type|x%"
     

     log MEMORY_FILE3 currentpos 0x4
     math currentpos += 0x4

     
     
     get PVR_start long
     Math PVR_start -= base_address
     #print "PVR_start: %PVR_start|x%"
       
       if A < total_tex
      
      
           xmath nextpos "currentpos +0xc"
           #print "next PVR start: %nextpos|x%"
           
           goto nextpos
           get PVR_end long
           
           Math PVR_end -= base_address
           #print "PVR_end: %PVR_end|x%"
           
           Xmath PVR_size "PVR_end-PVR_start"
           #print "PVR_size: %PVR_size|x%"
         
         #print  "-----------------"
           math nextpos -= 0x8
           goto nextpos
           math currentpos = nextpos
         

       else
         
         Xmath PVR_size "binsize-PVR_start"
         #print "PVR_size: %PVR_size|x%"

         break

      endif
           
     
   
    xMath PVR_size_val "PVR_size+0x8"
    PutVarChr MEMORY_FILE5 0 PVR_size_val Long
   
    append
    log MEMORY_FILE 0 20 -4
    log MEMORY_FILE 0 4 -5
    log MEMORY_FILE 0 4 -3
    log MEMORY_FILE 0 4 -2
    log MEMORY_FILE PVR_start PVR_size 1
    append
   
    get tsize asize -1
    String PVR_NAME P "%name%_tex_%A%.pvr"
    log PVR_NAME 0 tsize -1
     
     Math A += 1
   
    log MEMORY_FILE 0 0
    log MEMORY_FILE2 0 0
    log MEMORY_FILE3 0 0
    log MEMORY_FILE5 0 0
   

next loop


# MODELS_LOOP


Math B = 1
get name basename

goto 0xc
get total_models long   #total models
goto 0x4
get models_pointers long
goto models_pointers

get base_address long

math model_offset = models_pointers


 for loop2

      String modelname P "%name%_model_%B%.bin"
      goto model_offset
      get model_start long
      xMath model_start "(model_start-base_address)+0x18"
     
        if B < total_models
      
          get next_offset long
          Xmath model_end "(next_offset-base_address)+0x18"
        Xmath model_size "model_end-model_start"
        log modelname model_start model_size
         

      else
       
        xmath model_end "models_pointers-0x8"
        Xmath model_size "model_end-model_start"
        log modelname model_start model_size
       
        break

       
        endif
      
      
     Math B += 1
     Math model_offset += 0x4
    
 next loop2


Blender Batch Import Script

Code: Select all

#Script taken from https://blender.stackexchange.com/questions/17817/how-do-i-batch-import-one-format-then-export-to-another
#Adapted to work with NaomiLib importer: https://github.com/NaomiMod/blender-NaomiLib

import os
import bpy

path_to_stl = os.path.join('Folder Directory Here', 'Subfolder name here')


file_list = sorted(os.listdir(path_to_stl))


stl_list = [item for item in file_list if item.endswith('.bin')]

for item in stl_list:
   path_to_files = os.path.join(path_to_stl, item)
   bpy.ops.import_scene.naomilib(filepath = path_to_files)



Custom Model Imports:
Image


Blender:
Image



Yeah thats been known for a while but is there tools to pack all back in after modding?

User avatar
Dirge Of Ram
Graffiti Grind
Posts: 318

Re: Dead Or Alive 2: Final (RELEASE!)

Post#186 » Thu Nov 10, 2022 10:06 am

HelenaGreenhornAction28.jpg


Dead or Alive 2: Action 28!

CDI

https://archive.org/details/dead-or-ali ... 8-2022-cdi

GDI

https://archive.org/details/dead-or-ali ... 8-2022-gdi

Indeed We Are On Chapter 14, Did Say Was Definitely On Right Up Above.

I Wonder How The Vanilla Aerosmith Crowd React To This One?!

So Please Share, Support, Like & Enjoy This Mod Series Only For Your Dreamcast Today.

I may not be the Texture Guy that's not my role right now. Certainly like to get on with expanding this game ten folds more! I don't see any Soul Calibur mods around because you know that fighting game was Perfect on Day One.

This can be alot more just know can be done. Few more Hex Address's I like to discover you know already my Dream List by now. So yeah lets keep on going, that's why we are here to play the Dreamcast version off Dead or Alive: Hard*Core.

Green Ranger
killer
Posts: 273

Re: Dead Or Alive 2: Final (RELEASE!)

Post#187 » Fri Nov 11, 2022 5:18 pm

Dirge Of Ram wrote:Entirely up to Mr. Green Ranger if you want to make renewed edit on the title thread. Add in The New 28 so we all can get more people aware what's been happening right here.


I edited my original post on the very first page to include a link to your archive.org content so all your contributions/downloads are easier to find. :)

User avatar
Dirge Of Ram
Graffiti Grind
Posts: 318

Re: Dead Or Alive 2: Final (RELEASE!)

Post#188 » Sat Nov 12, 2022 1:21 pm



This Is Code Chronus, This Is The New 28. Check out the Live Chat Replay if you want more trivial.

Don't be the "Why Did I Miss This" late Guy. We truly now in the Prime yes the real Prime off this Mod Series! So Play Today.

Unless you're waiting for the Dreamcast Mini.

Very likely to include the poor awful standard 4:3 first release Vanilla version with some clown claiming "All Perfect Yeah".

Blah I'm Out The Window!!!

User avatar
ryu_highabusa
shadow
Posts: 13

Re: Dead Or Alive 2: Final (RELEASE!)

Post#189 » Sun Nov 13, 2022 1:23 am

Dirge Of Ram wrote:1aaac3 - Camera Lighting Effect (Character Select- Ein)

Any experience modding this section?

I went ahead and found it in the other console versions (arcade rom is encrypted) but I haven't touched it myself.

Code: Select all

0x0017FDDC   2000-01-06   DOA2 DC Magazine/Generator Demo   
0x0017B628   2000-01-27   DOA2 DC US Prototype   
0x00184394   2000-02-07   DOA2 DC Kiosk Demo   
0x001894A0   2000-02-17   DOA2 DC US Prototype
0x0019B800   2000-03-06   DOA2 DC US Final
0x0019B800   2000-03-10   DOA2 DC PAL Prototype
0x003029F4   2000-03-17   DOA2 PS2 JP SLPS-25002
0x0019D15C   2000-06-11   DOA2 DC PAL Prototype
0x001A020C   2000-06-25   DOA2 DC PAL Final
0x001AAA8C   2000-08-29   DOA2LE DC JP Final
0x0029AA8C   2000-08-29   DOA2LE ECHELON SELFBOOT         
0x003B6FCC   2000-10-01   DOA2HC PS2 US Prototype   
0x003B730C   2000-10-03   DOA2HC PS2 US SLUS-20071 Final
0x003D43AC   2000-11-07   DOA2HC PS2 JP   SLPS-25026 Final


The data barely changes between builds.
Image

User avatar
Dirge Of Ram
Graffiti Grind
Posts: 318

Re: Dead Or Alive 2: Final (RELEASE!)

Post#190 » Sun Nov 13, 2022 12:05 pm

I have no more further information on the hex lighting effects. Too be fair I have no awareness on what I would be able to do without causing the game crash. Whenever I try something new in the Hex Department, I'm in my own mindset & comfort zone right now.

Hold Up!!! Now you know dee4doa because he was the one who found these out a very long time. Some Information, screenshots and videos from dee4doa pretty much lost forever.

There was one I mentioned that was removing Stage Walls, well I had the screenshots but not the info secured. Go on the Stage files here.

screenshot009.jpg

screenshot010.jpg


Again the video that dee4doa had up once was removing all the walls to the lower level Demon Church. I would only try this on emulator even though those screens say Stage 10 file that's The Great Opera house.

KOKUAN.jpg

playables44.jpg

screenshot_0.jpg

649851101.gif


These are super old pictures so no big hyping now, last two here were from leidoa I believe.

I've been very open with everything I can do on here. You playin what I'm playing. No super hidden edition out there no no no. Real hardware every new feature must work on the Dreamcast itself not emulator only exclusive no no!

Finding that Dojo stage hex code I love for that to be restored. Seeing all DoA2 Hex Address's altogether further proves just one build after another. Said enough for now.

  • Similar Topics
    Replies
    Views
    Last post

Return to “New Games”

Who is online

Users browsing this forum: No registered users