Jump to content
IGNORED

Lets make a journey to the cave of monsters. Good luck


CyranoJ

Recommended Posts

Difference is, paying $60-$100 for a single old shonky 8-bit or 16-bit port (or comparable looking) for a Jag homebrew is not cool.

 

Potential copyright infringement aside, be nice if dozens/hundreds of old ST games could be ported and then slapped on to a HUGE compilation disk with a nice front end for use with the JagCD. Similar to what's been done on the Amiga CD32. Yes, I understand the difference in porting in this example (sell it at a price that makes sense for both consumer and the hackers), but do that and now you've got something of value and worth getting all excited about. Especially by those of us that have had extremely bad luck with original AtariST hardware or would like to play ST games with something other than a 2600 controller and on something larger than a 12" or 13" screen. ;)

 

Hay saves check it out... From http://www.mdgames.de/tosonjag.htm

post-27510-0-42972700-1351136599_thumb.jpg

post-27510-0-96541200-1351136644_thumb.jpg

post-27510-0-54138600-1351136892_thumb.jpg

post-27510-0-00329800-1351136919_thumb.jpg

Edited by skaredmask
  • Like 5
Link to comment
Share on other sites

The game was still dropping frames when the action picked up (running the game's main loop + the GPU screen conversion routine was taking more than one Jaguar VBlank to execute) so I delved a bit deeper into the binary, and now I've re-coded the game's sprite copy routine on the GPU - all good again!

 

load_source: dc.l 0
load_destin: dc.l 0
GPU_Opt2: movei #load_destin,r1
movei #load_source,r2
load (r1),r1
load (r2),r2
movei #$92,r0

.rept 8

loadw (r2),r10
addqt #2,r2
loadw (r2),r11
addqt #2,r2
loadw (r2),r12
addqt #2,r2
loadw (r2),r13
addqt #2,r2
loadw (r2),r14
addqt #2,r2
loadw (r2),r15
addqt #2,r2
loadw (r2),r16
addqt #2,r2
loadw (r2),r17
addqt #2,r2
;;;;
loadw (r2),r20
addqt #2,r2
loadw (r2),r21
addqt #2,r2
loadw (r2),r22
addqt #2,r2
loadw (r2),r23
addqt #2,r2
loadw (r2),r24
addqt #2,r2
loadw (r2),r25
addqt #2,r2
loadw (r2),r26
addqt #2,r2
loadw (r2),r27
addqt #2,r2
storew r10,(r1) ; 0p1
addqt #2,r1
storew r11,(r1) ; 0p2
addqt #2,r1
storew r12,(r1) ; 1p1
addqt #2,r1
storew r13,(r1) ; 1p2
addqt #2,r1
storew r14,(r1) ; 2p1
addqt #2,r1
storew r15,(r1) ; 2p2
addqt #2,r1
storew r16,(r1) ; 3p1
addqt #2,r1
storew r17,(r1) ; 3p2
add r0,r1
;;
storew r20,(r1) ; 0p1
addqt #2,r1
storew r21,(r1) ; 0p2
addqt #2,r1
storew r22,(r1) ; 1p1
addqt #2,r1
storew r23,(r1) ; 1p2
addqt #2,r1
storew r24,(r1) ; 2p1
addqt #2,r1
storew r25,(r1) ; 2p2
addqt #2,r1
storew r26,(r1) ; 3p1
addqt #2,r1
storew r27,(r1) ; 3p2
add r0,r1

.endr

moveq #0,r0				 ; Stop GPU
movei #G_CTRL,r1
store r0,(r1)
nop
nop

 

[EDIT: ADDITIONAL]

 

And here is the replacement GPU code for the sprite renderer :-)

 

  .phrase
load_a4: dc.l 0
load_a3: dc.l 0
load_a2: dc.l 0
load_a1: dc.l 0
 
GPU_Opt3: movei #load_a1,r4
  load (r4),r1  ; a1
  subqt #4,r4
  load (r4),r2  ; a2
  subqt #4,r4
  load (r4),r3  ; a3
  subqt #4,r4
  load (r4),r4  ; a4
  movei #$90,r5
  moveq #16,r6
  movei #.spriteloop,r7
.spriteloop:
  .rept 2
; move.l (a1),(a2)+ ; 16fd4 ; 16fe8
; move.l (a4),d1
; and.l  (a1),d1
; or.l   (a3)+,d1
; move.l d1,(a1)+
  loadw (r1),r10 ; MOVE.L (A1),(a2)+
  addqt #2,r1
  loadw (r1),r11
  subqt #2,r1
  loadw (r4),r12 ; move.l (a4),d1  (r12+r13=d1)
  addqt #2,r4
  loadw (r4),r13
  subqt #2,r4
  loadw (r3),r14
  addqt #2,r3
  loadw (r3),r15
  addqt #2,r3
  move r10,r20
  move r11,r21
  and  r10,r12
  and  r11,r13
  or  r14,r12
  or  r15,r13
  storew r12,(r1)
  addqt #2,r1
  storew r13,(r1)
  addqt #2,r1
  storew r20,(r2)
  addqt #2,r2
  storew r21,(r2)
  addqt #2,r2
; move.l (a1),(a2)+ ; $16fde ; $16ff2
; move.l (a4)+,d1
; and.l  (a1),d1
; or.l   (a3)+,d1
; move.l d1,(a1)+
  loadw (r1),r10 ; move.l (a1),
  addqt #2,r1
  loadw (r1),r11
  subqt #2,r1
  loadw (r4),r12 ; move.l (a4),d1  (r12+r13=d1)
  addqt #2,r4
  loadw (r4),r13
  addqt #2,r4
  loadw (r3),r14
  addqt #2,r3
  loadw (r3),r15
  addqt #2,r3
  move r10,r20
  move r11,r21
  and  r10,r12
  and  r11,r13
  or  r14,r12
  or  r15,r13
  storew r12,(r1)
  addqt #2,r1
  storew r13,(r1)
  addqt #2,r1
  storew r20,(r2)
  addqt #2,r2
  storew r21,(r2)
  addqt #2,r2
  .endr
  add  r5,r1
  subq #1,r6
  jump NE,(r7)
  nop
  nop
 
  moveq   #0,r0				   ; Stop GPU
  movei   #G_CTRL,r1
  store   r0,(r1)
  nop
  nop

 

It's faster than the ST original now. Mwhahahahahaha!

  • Like 7
Link to comment
Share on other sites

I agree. I think we keep the core ST game, but hook a bunch of Jagtastic additions into it, like high colour titles, a proppa 'welcome to the cave of monsters' - maybe even add the arcade sound effects.

 

And, of course, memory track/jagtopus highscore saving (and webcodes!!) ;)

  • Like 6
Link to comment
Share on other sites

CJ, is it feasible to release the Jag version as a set of patches for the ST version (possibly with the help of a custom program to convert the ST disk image into a ROM)? That way, there would be no copyright concerns.

 

It should be possible to do something like that, but we'll decide more towards the end of the project - well, we were at the end of this one until two posts above. Looks like we have to tart it up now!

 

Hell, I could even check the weak sector on the disk to make sure nobody uses a dodgy pirate copy :P Yaaaaaaarrrrrr!!!!

 

Can't let Rebooteroids slip behind, either!

  • Like 3
Link to comment
Share on other sites

Any chance of get Crazy Cars 3, Vroom, Lotus Turbo or Eliminator?

 

Possibly in the future - at the moment these are all hand patched. I'd like to finish up the few I've started and get back to working on our own games. We're not at the requests stage yet :)

  • Like 2
Link to comment
Share on other sites

What was I thinking?

 

move r10,r20
move r11,r21
and r10,r12
and r11,r13
or r14,r12
or r15,r13
storew r12,(r1)
addqt #2,r1
storew r13,(r1)
addqt #2,r1
storew r20,(r2)
addqt #2,r2
storew r21,(r2)
addqt #2,r2

 

Clearly that should be:

 

storew r10,(r2)
addqt #2,r2
storew r11,(r2)
addqt #2,r2
and r10,r12
and r11,r13
or r14,r12
or r15,r13
storew r12,(r1)
addqt #2,r1
storew r13,(r1)
addqt #2,r1

 

I mean it's so obvious!

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...