Dead Or Alive 2: Final (RELEASE!)

Moderators: pcwzrd13, deluxux, VasiliyRS

Post Reply
Green Ranger
killer
Posts: 273
Joined: Mon Jan 19, 2015 5:38 pm

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

Post by Green Ranger »

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
Joined: Thu Jul 19, 2012 5:19 am
Dreamcast Games you play Online: Errythan except Tetris o.0
Location: Miami, FL, CUBA
Contact:

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

Post by mistamontiel »

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: 322
Joined: Mon Feb 22, 2021 10:11 am
Dreamcast Games you play Online: No GGPO Fightcade For Me.

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

Post by Dirge Of Ram »

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
Joined: Sun Oct 03, 2021 12:31 pm
Dreamcast Games you play Online: Dead or Alive 2

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

Post by ryu_highabusa »

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
Crazy Taxi!
Posts: 535
Joined: Wed Jan 06, 2010 10:15 pm
Dreamcast Games you play Online: PSO-SCHtACK

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

Post by cloofoofoo »

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: 322
Joined: Mon Feb 22, 2021 10:11 am
Dreamcast Games you play Online: No GGPO Fightcade For Me.

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

Post by Dirge Of Ram »

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
Joined: Mon Jan 19, 2015 5:38 pm

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

Post by Green Ranger »

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: 322
Joined: Mon Feb 22, 2021 10:11 am
Dreamcast Games you play Online: No GGPO Fightcade For Me.

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

Post by Dirge Of Ram »



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
Joined: Sun Oct 03, 2021 12:31 pm
Dreamcast Games you play Online: Dead or Alive 2

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

Post by ryu_highabusa »

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: 322
Joined: Mon Feb 22, 2021 10:11 am
Dreamcast Games you play Online: No GGPO Fightcade For Me.

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

Post by Dirge Of Ram »

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.
Post Reply