What's new
Just to check: Are you using /p for load2?
During my toilet break i had the same idea, i had used this ***> before to set up the start of entries for bldctl in IMGTBL.ASM and see where it would align.
And offcourse, we have the original IRW right? We could determine the start of MUG1 from the IMG container, check in the ROBOY.IRW and figure it out from there.


My main thoughts were, what is up with V5.00 being in the root and V8 being in the backup folders.
V5 looks like some wierd in-between version but still seems to want V8 GFX roms.
Why multiple LOD files (It seems they built at least ROBO and ROBOY lod files since the IRW's are there.)
4.50 4/27/90 is the header for the version of load.exe we are missing.
03/14/95 is load2.exe version we're using.

If i search for 28 38 12 12 (0x11B in MUTEXP.IMG) in the IRW we built, it's at 0x4D in my roboy.irw
I guess that's MUG1 data.

If i check for this in the original, there's something else there i didn't yet recognize. Also 28 38 12 12 did not appear in the original IRW.
Maybe different encoding for the DMA2 platform?

Looking at the IMGTBL.ASM generated with the new parameters, i see it going wrong at PHEAD8
OLD .long 02124560
NEW.long 021225e0 (+0x70)
(And everything is fudged after this offcourse.)
Blueguy and fingrnt are right after that. I tried forcing the adress at this point in the LOD but it didn't care and still wrote a broke .asm file.

Fon150
OLD 02193E40H
NEW 02192560H (0x18E0 short)

Arrow12
OLD 0213A980H
NEW 0213a300H (0x680 short)

Looking forward to your reverse engineering thoughts and calculations :)
Edit: More RE'ing ASM..
 
Last edited:
edited my lod file again to add this hack in

Code:
D:\VIDEO\IMG\FINGRNT.IMG
***> 0213D0C0
ASM> FINGRNT.TBL

and....

Screenshot 2023-04-13 at 22.42.36(3).png
Screenshot 2023-04-13 at 22.42.42.png



:) :) :)
 
I was at 0213B880, but that did not produce a good result.. how did you end up with this number? :)
Must have missed bluguy's size.. ;)
 
I was at 0213B880, but that did not produce a good result.. how did you end up with this number? :)
Must have missed bluguy's size.. ;)

Here goes..

The sequence of files created/appended to from the lod is:

MUTEXP
MNTR
IMGTBL
FINGRNT
IMGTBL
FLATFACE
GALAGAS
IMGTBL
FINGRNT
COBRA
IMGTBL
BGNDTBL

So to create new FINGRNT start address I open both files for IMGTBL.asm (the backup one and the one I just created), then I compare the reference in the lod for the entry before the first FINGRNT item.

This is DCLR

Backup entry - 0x0213AFC0
New file entry - 0x0213A940

Difference 680H

Current starting point for FINGRNT is 0x0213CA40

Therefore, add the difference on to create the new starting point:

0x0213CA40+0x680 = 0x0213D0C0
 
Currently working through how to get more music and speech to play in the sound test. The source provided is really messed up
 
Agreed, but you should see Total Carnage. They have a similar subroutine thing with labels they use, and an instruction that doesn't seem to be 34010 assembly at all.
They use JSRP long_sub_name and subroutines starting with SUBRP and i have no idea if i can get away with JRUC or whatever else is needed.
The makefile provides no indication of how to handle this, or if it's replaced, different compiler.. etc. Very wierd.
(There do not appear to be duplicates like they have in NBA Jam with its #label mess.)

Judging from all the source we have, these guys were wizards, coding these games in raw assembly.

Note to self: SHAWN.HDR from carnage is really broken..
However:
1681776163438.png
 
Last edited:
First screenshot of compiled rework:

1681808779436.png


This needs quite a bit of fixing in regards of tables for sprites and stuff, but it's in working shape now.
Tables do not seem to be made as pretty as we would want them, there does not appear to be much luck like with Smash tv..

Edit:
I've also been looking at the LOD and TBL file generation more closely to see how we can get load1 behaviour.
At least in Total Carnage i noticed we have some 'compression' for duplicate images. This is the original image asm:
Code:
WTIMER1:
    .word    5,7,0,0
    .long    02832340
    .long    WARPP
OTHERP:
    .word    5,7,0,0
    .long    02832340
    .long    WARPP2

It uses the same address (image de-duplication) for these images. From the docs i can find, this is controlled by keyword CON/COF:
CON/COF>
These keywords turn checksums on and off.
When on (the default), load2 computes a checksum for each image
to see if it matches a previous image. If so, it creates
a new image header pointing to the previous data, and does
not download the identical data.
When off, identical data will be downloaded separately.

However, it does not seem to really want to turn on/off and produce same output. Still looking into it.
 
Last edited:
Started to reverse engineer the tables/lod from the original merged flat rom vs my output, using compare & find & hex edit & calc :)
I have a semi working LOD file with some manual fixes for other files.
Only a few more tables to go. Text/font is giving me a headache, but the rest is looking great so far :)



1681917513776.png
1681917544243.png


One thing i noticed, i cannot seem to continue the game when dead. Also in Smash TV the same problem seems to occur.. wierd!
 
I lost the plot here, what are you porting these games to? LOL
 
Started to reverse engineer the tables/lod from the original merged flat rom vs my output, using compare & find & hex edit & calc :)
I have a semi working LOD file with some manual fixes for other files.
Only a few more tables to go. Text/font is giving me a headache, but the rest is looking great so far :)



1681917513776.png
1681917544243.png


One thing i noticed, i cannot seem to continue the game when dead. Also in Smash TV the same problem seems to occur.. wierd!
Great work. I need to check my smash tv build to see if this is the case too. I suspect it will be the same
 
I lost the plot here, what are you porting these games to? LOL
We are working through the code leak and trying to get working builds again from the source to run on original hardware and mame. For me it’s then also to make updates , fixes and improvements on some as per my screens on smash tv I already shared
 
Last edited:
@mecha
Hurdles:
- Source code dumps are available
- It won't compile as-is
- Requires (a lot of) work to bring up to spec of available gspa 6.10 assembler
- GFX tools for Y/T-unit not available, newer version requires adjustments to gfx LOD files.

Why?
- Insight. Learn from history, work with a legendary game designer's code. Improve 34010 assembler knowledge.
- I'm not doing this for anybody but nyself, as an excersize and to gain understanding. I like large impossible projects.
- Add new features, improve existing code/game (I'm focusing on getting the originals to run first.)

Once we have these games in working order, they can indeed be ported. Y-Unit and T-Unit are not that different from the later Wolf Unit.
We have the Wolf unit framework base from the later games as well, so they might even end up on a Wolf multi if that appears.
Y-Unit is becoming quite expensive and it would be nice to have these games on newer/better hardware some day.

I originally wanted to get NBA Jam, TE, Hangtime & WWF code up & running, but joined in the fun on Smash & Carnage.
You can LOL all you want, i'm just doing this for fun so that's fine with me. We're getting these things to compile for the first time in what, 30 years or so?
Seems like a worthy challenge to me. Btw, @mecha did you get my PM on arcade-museum regarding the undumped 2.0 roms? It would be cool if you can share that dump, it was built from a different code base, that is not in the leaked source dump.
 
We are working through the code leak and trying to get working builds again from the source to run on original hardware and mame. Fir me it’s then also to make updates , fixed and improvements on some as per my screens on smash tv I already shared
If this becomes as good as the work you did on Revenge From Mars, i'm already looking forward to this. When carnage is done all the semi-low hanging fruit is gone, and NBA Jam is next. We need TE 4.0 with Jordan, backboard shattering and drop-in roms to run on regular boards with the security patched.. :)
 
Carnage is done, i got the tables 99% worked out.
TEXT.TBL is wierd, they use a proportional font and a lot of cheats (L = 7 upside down O=0 ..saves rom space).

For some reason the proportions are not used correctly, so font spacing is off and text can appear outside boxes.
Other than that, and the continue issue, i think it's good to go. Needs more testing. Sample font issue pic:

1681947804600.png


Also this game sucks with keyboard ;)
Code on github: https://github.com/Asure/total-carnage
 
@mecha
Hurdles:
- Source code dumps are available
- It won't compile as-is
- Requires (a lot of) work to bring up to spec of available gspa 6.10 assembler
- GFX tools for Y/T-unit not available, newer version requires adjustments to gfx LOD files.

Why?
- Insight. Learn from history, work with a legendary game designer's code. Improve 34010 assembler knowledge.
- I'm not doing this for anybody but nyself, as an excersize and to gain understanding. I like large impossible projects.
- Add new features, improve existing code/game (I'm focusing on getting the originals to run first.)

Once we have these games in working order, they can indeed be ported. Y-Unit and T-Unit are not that different from the later Wolf Unit.
We have the Wolf unit framework base from the later games as well, so they might even end up on a Wolf multi if that appears.
Y-Unit is becoming quite expensive and it would be nice to have these games on newer/better hardware some day.

I originally wanted to get NBA Jam, TE, Hangtime & WWF code up & running, but joined in the fun on Smash & Carnage.
You can LOL all you want, i'm just doing this for fun so that's fine with me. We're getting these things to compile for the first time in what, 30 years or so?
Seems like a worthy challenge to me. Btw, @mecha did you get my PM on arcade-museum regarding the undumped 2.0 roms? It would be cool if you can share that dump, it was built from a different code base, that is not in the leaked source dump.
have you seen those guys doing Mortal Kombat II Plus and Ultimate Mortal Kombat 3 Plus? also I sold Total Carnage last year to an arcade I fixed games at, they said they submitted the roms to the MAME people. I had dumped them years ago but they didn't drop in MAME, just black screen when you load. I don't really remember what was different about those roms, may have had something to do with the ending text. I actually talked to Mark Turmell about it some near 10 years ago. I didn't notice if anything played different, I'm not as familiar with that game as Smash TV.

I had an extra High Impact Football board from old job that I sacrificed to fix NARC there (bad Custom Chip), I came into a heavily corroded MK1 board that I robbed the Custom Chip and Autoerase chip from, but I gave up the socket to a T2 board I was sent to fix (it wound up being the Autoerase chip, not the Custom Chip) and I think I may have goofed soldering that chip in. I have roms that are good that show up bad and all the game text is missing.
 
Back
Top