Jump to content

Photo

Old school platformer comes to the jag

Video Olympics at the Lass

170 replies to this topic

#1 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sat Aug 4, 2012 2:15 PM

Today was the first day of the Video Olympics event at the Lass O'Gowrie pub in Manchester, UK. For a laugh I ported the SDL version of A&F's Chuckie Egg originally reverse engineered into "C" (from the BBC micro version) by Paul Brook over to the jag. The jag is so hard to program for, that it took a massive 3 hours :o (last night) to rip out the SDL code and replace it with jag code to get it running at a decent frame rate :-

ce-vj1.png ce-vj2.png

Photo of it running on real hardware (NTSC) :-

ntsc_1.jpg ntsc_2.jpg

The original code is GPL'd so I'll be releasing the source along with a binary image. I doubt there will be an NTSC release because the games needs 256 vertical scan lines. There have been adaptations of the game in the recent past that have reduced the vertical screen requirements so I may go down that route.

Many thanks to Linkovitch and sh3-rg for testing. The game caused a few laughs and plenty of smiles and was therefore a complete success in my eyes.

There are no plans for a CD or cart run.

#2 LinkoVitch OFFLINE  

LinkoVitch

    River Patroller

  • 2,676 posts
  • Location:Manchester UK

Posted Sat Aug 4, 2012 2:19 PM

Just force it into interlace mode and geta nice picture of a BBC CUB monitor to act as a surround for the reduced play-area size :D should take not long to get it working and would look win :D

g'awn, you know it will look awesome and makes sense :D

#3 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sat Aug 4, 2012 2:24 PM

Just force it into interlace mode and geta nice picture of a BBC CUB monitor to act as a surround for the reduced play-area size :D should take not long to get it working and would look win :D

g'awn, you know it will look awesome and makes sense :D


:lolblue: I might just put that in ;).

#4 Tyrant OFFLINE  

Tyrant

    Stargunner

  • 1,611 posts
  • Location:London, UK

Posted Sat Aug 4, 2012 2:35 PM

Looking good.

Don't interlace it though, all those single-pixel lines would flicker like crazy. I guess you could interlace it and then have it stretched 2:1 but that wouldn't really help.

#5 JagChris OFFLINE  

JagChris

    River Patroller

  • 3,674 posts
  • Location:Oregon

Posted Sat Aug 4, 2012 2:36 PM

Congrats GroovyBee! Too bad about the NTSC thing.

#6 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sat Aug 4, 2012 2:51 PM

Looking good.


Thanks for the compliment. It plays exactly like the BBC version so its a very good reverse engineering job by Paul Brook.

Don't interlace it though, all those single-pixel lines would flicker like crazy. I guess you could interlace it and then have it stretched 2:1 but that wouldn't really help.


If I can find a volunteer for the graphics I might have updated and classic modes. I don't really want to spend too long on it because it was a "make people laugh" kinda project.

#7 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sat Aug 4, 2012 2:52 PM

Congrats GroovyBee! Too bad about the NTSC thing.


Thank you! As I mentioned other versions need less screen real estate so its just a matter of borrowing the level data and it should just work.

#8 CyranoJ OFFLINE  

CyranoJ

    RAPTOR Wrangler

  • 5,870 posts
  • reBOOTed
  • Location:Adelaide, SA

Posted Sat Aug 4, 2012 4:49 PM

You could try writing the screen to a scaled bitmap, and use the OP to shrink it down to NTSC size - that way there's no code needed!

Well done, GB!!

#9 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sat Aug 4, 2012 4:58 PM

You could try writing the screen to a scaled bitmap, and use the OP to shrink it down to NTSC size - that way there's no code needed!


Its mainly score, lives and timer and a big yellow bird taking up most of the top of the screen. It was just a fun little project to take to the event today. As soon as it was going I pretty much called a halt on it :lol:. It needs a bit more work to get the frame rate higher and then with a title page and high scores its pretty much done.

Well done, GB!!


Thanks for the compliment.

#10 LinkoVitch OFFLINE  

LinkoVitch

    River Patroller

  • 2,676 posts
  • Location:Manchester UK

Posted Sat Aug 4, 2012 5:02 PM

Looking good.

Don't interlace it though, all those single-pixel lines would flicker like crazy. I guess you could interlace it and then have it stretched 2:1 but that wouldn't really help.


They shimmer a bit, but I haven't really noticed too much flickering, plus if you run it through a half decent LCD it tends to buffer the fields and you get a solid image :D

#11 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,363 posts

Posted Sat Aug 4, 2012 5:20 PM

Compilation time! Include Manic Miner and Jet Set Willy!

#12 Zerosquare OFFLINE  

Zerosquare

    River Patroller

  • 2,791 posts
  • Location:France

Posted Sat Aug 4, 2012 7:48 PM

You could try writing the screen to a scaled bitmap, and use the OP to shrink it down to NTSC size - that way there's no code needed!

Nah, don't do that. The OP doesn't use interpolation, and it'll look like crap.

Force 50 Hz mode instead :P

#13 walter_J64bit OFFLINE  

walter_J64bit

    Quadrunner

  • 5,223 posts
  • Location:Goldsboro NC

Posted Sat Aug 4, 2012 8:04 PM

Keep up the good work! I hope a to see a NTSC fix.

#14 GT Turbo OFFLINE  

GT Turbo

    Dragonstomper

  • 581 posts
  • Location:Alsace, France

Posted Sun Aug 5, 2012 12:31 AM

Very great work GB !!!!!

Yes very hard to code !!! xD Another example !!!!!



GT

#15 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sun Aug 5, 2012 5:20 AM

Compilation time! Include Manic Miner and Jet Set Willy!


:lol: I'd like to bring those over to the 7800 at some point way, way down the line.

#16 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sun Aug 5, 2012 5:21 AM

Keep up the good work! I hope a to see a NTSC fix.


Its certainly possible. It just makes the game a bit harder because you have less room to move around in to avoid the big duck when its released from the cage.

#17 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sun Aug 5, 2012 5:28 AM

Very great work GB !!!!!


Thanks for the compliment but I think Paul Brook deserves a lot more credit. He did all the really hard work in reverse engineering the original BBC micro 6502 game into working "C" code.

Yes very hard to code !!! xD Another example !!!!!


The jag just gives you more options to solve your in-game problems so there is never an "ultimate" single solution. Game coding is always a trade off between the resources the machine offers you, what you need to do behind the scenes in the game and what experience you have coding/debugging etc.

#18 walter_J64bit OFFLINE  

walter_J64bit

    Quadrunner

  • 5,223 posts
  • Location:Goldsboro NC

Posted Sun Aug 5, 2012 6:37 AM

Keep up the good work! I hope a to see a NTSC fix.


Its certainly possible. It just makes the game a bit harder because you have less room to move around in to avoid the big duck when its released from the cage.

I've got an idea, You'd played Jr. Pac-man right? You know how the maze move with Jr Pac-Man when you go left or to right of the maze maybe you can do the same for your game instead the maze moving left to right just make where it move down and up that way you don't to have re-size your levels or do something more like Gauntlet or Dark Chambers.


#19 Tyrant OFFLINE  

Tyrant

    Stargunner

  • 1,611 posts
  • Location:London, UK

Posted Sun Aug 5, 2012 6:54 AM

Just force it into 50hz. I know almost all PAL TV's will accept PAL60 (NTSC size) signals. I'm sure the majority of NTSC screens should be able to accept PAL size signals, especially the more modern ones.

#20 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sun Aug 5, 2012 7:01 AM

I've got an idea, You'd played Jr. Pac-man right? You know how the maze move with Jr Pac-Man when you go left or to right of the maze maybe you can do the same for your game instead the maze moving left to right just make where it move down and up that way you don't to have re-size your levels or do something more like Gauntlet or Dark Chambers.


Possible, but you have to get on and off lifts in later levels so having the screen scrolling up/down would affect how you play the game. It'll be easier to alter the levels and then the play mechanics are what Chuckie Egg fans expect ;).

#21 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sun Aug 5, 2012 7:05 AM

Just force it into 50hz. I know almost all PAL TV's will accept PAL60 (NTSC size) signals. I'm sure the majority of NTSC screens should be able to accept PAL size signals, especially the more modern ones.


I'd rather just alter the level layouts. The Acorn Atom had a Chuckie Egg port recently and that has a comparable vertical resolution to an NTSC console (approximately 200 scan lines).

#22 Zerosquare OFFLINE  

Zerosquare

    River Patroller

  • 2,791 posts
  • Location:France

Posted Sun Aug 5, 2012 9:11 AM

Just force it into 50hz. I know almost all PAL TV's will accept PAL60 (NTSC size) signals. I'm sure the majority of NTSC screens should be able to accept PAL size signals, especially the more modern ones.

Actually, that was more or less a joke :D
AFAIK, there are a lot more NTSC TV sets that don't support 50 Hz than PAL set that don't support 60 Hz. So it's probably not a wise solution.

Edited by Zerosquare, Sun Aug 5, 2012 9:11 AM.


#23 atarilovesyou OFFLINE  

atarilovesyou

    River Patroller

  • 2,634 posts

Posted Sun Aug 5, 2012 9:24 AM

Off topic, but when people say that the Jag is notoriously difficult to program for, what does this mean?...is it that there's no software developer tools to allow easier programming? I'm curious, but something tells me the answer must be a complex one as well.

#24 Tyrant OFFLINE  

Tyrant

    Stargunner

  • 1,611 posts
  • Location:London, UK

Posted Sun Aug 5, 2012 9:43 AM

Just force it into 50hz. I know almost all PAL TV's will accept PAL60 (NTSC size) signals. I'm sure the majority of NTSC screens should be able to accept PAL size signals, especially the more modern ones.

Actually, that was more or less a joke :D
AFAIK, there are a lot more NTSC TV sets that don't support 50 Hz than PAL set that don't support 60 Hz. So it's probably not a wise solution.

Really? Well that's a bit poo, isn't it?
I wonder how NTSC HDTV sets handle things?
Then again, a lot of HTDV sets don't seem to like the non-interlaced signals the Jag and other old games systems produce anyway.

#25 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • Topic Starter
  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Sun Aug 5, 2012 10:43 AM

Off topic, but when people say that the Jag is notoriously difficult to program for, what does this mean?...is it that there's no software developer tools to allow easier programming? I'm curious, but something tells me the answer must be a complex one as well.


There are a lot of myths about the jaguar and this is one of them. I haven't had a problem with the official development kit documentation so far. The only problem is a lack of source code examples in the actual docs themselves because you have to go off and look them up (and then they might not actually do what you want them to do ;)). I don't have an Alpine or an archive of the official set of example code that came with the dev kits either. But with the availability of useful information on the Internet (Jagware, AtariMuseum etc.) and files Curt Vendel has put out to the community its not such an issue these days.

If you've done any moderately complex programming in assembler then the jag isn't a problem. If you've never got your head around how high level language concepts like arrays, linked lists or bit packed structures actually work at a low level then constructing an object list for the jag's object processor is going to be a problem. But having said that once you get some code that works it becomes part of your personal programming library and gets adapted and used in your projects as time goes on.

Sure the jag has its quirks and silicon bugs but you have to learn to live with them and to work around them when you need to. That is all part of developing your game. Its "you vs the machine" to get it to meet/exceed your goals and thats the fun part. Well... to me it is ;).

Writing games is always a trade off. With jag development these days you can write your game in "C" with "heavy load" parts moved out to the blitter and object processor and 68k assembler if needed. If you have a more demanding game then you offload parts to the GPU and make use of some architecture parallelism. There is no perfect solution to a game. Its all down to the game style/genre, personal choice/ability and what makes it fun for you as a developer. If you want to wring out every ounce of performance from the jag you can. If you want to write a simple game every month you can. Just have fun doing what you want to be doing.

With Reboot's RAPTOR engine on the horizon and U235's sound engine already available then the entry point to developing games on the jag in the future is coming down.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users