AbelVincze Posted February 21, 2015 Report Share Posted February 21, 2015 (edited) Hi All, I digged the whole forum, but doesn't find a relevant topic, or just don't wanted to steel other's, so i opened a new one... I started a big (compared to me) project about a year ago: porting my favorit c64 game (Head over Heels) to a classic Mac, and as part of this project i had to learn coding my old Mac's. I just wanted to share my first little intro (as called on c64) that i finally got assembled. Mostly in C, some little parts in 68k ASM, made on a Mac LC III with CodeWarrior4. The app is using direct write to VRAM and vertical syncing (using SlotVBL). here is the short video how it looks like: direct link Thanks for watching! If anyone is interested, i can share the source files. Edited February 21, 2015 by AbelVincze Quote Link to post Share on other sites
olePigeon Posted February 21, 2015 Report Share Posted February 21, 2015 I can't see the video. Quote Link to post Share on other sites
AbelVincze Posted February 21, 2015 Author Report Share Posted February 21, 2015 I can't see the video. I added a direct link too. Quote Link to post Share on other sites
bse5150 Posted February 21, 2015 Report Share Posted February 21, 2015 Nice! Looks like the start of the Mac demo scene. Quote Link to post Share on other sites
uniserver Posted February 21, 2015 Report Share Posted February 21, 2015 love it!!!!!! Quote Link to post Share on other sites
Sherry Haibara Posted February 21, 2015 Report Share Posted February 21, 2015 That's superb!! Great job! Quote Link to post Share on other sites
AbelVincze Posted February 21, 2015 Author Report Share Posted February 21, 2015 Thanks for the kind words I will keep posting as i have an update! Quote Link to post Share on other sites
madmax_2069 Posted February 21, 2015 Report Share Posted February 21, 2015 Awesome job. Quote Link to post Share on other sites
olePigeon Posted February 24, 2015 Report Share Posted February 24, 2015 Oooo, cool. Quote Link to post Share on other sites
nglevin Posted February 28, 2015 Report Share Posted February 28, 2015 Very nicely done. Personally, I'd love to take a look at that source. I have a copy of CodeWarrior Pro 4 and a Macintosh Quadra 800. Would be nice to build it for myself and see those VRAM techniques at work. Quote Link to post Share on other sites
AbelVincze Posted February 28, 2015 Author Report Share Posted February 28, 2015 Hi, ok at least it will be tested on a Quadra 800 too:) Tonight i will finish a new effect, and then i will make a package of all the files. And i will also add comments to the code. I will post the news, and the links later in this topic! Quote Link to post Share on other sites
AbelVincze Posted March 1, 2015 Author Report Share Posted March 1, 2015 (edited) I just finished a new intro featuring a stretcher/image swapper and a DYCP scroller: I have to polish is a little bit, and make it working on Mac Classic (512x342 screen res), then i will post the sources. Thanks for watching. Some words about the making of this intro: the graphics was made on my main computer running Yosemite - using Photoshop and Illustrator. The fonts used are custom made fonts, and was assembled and pixelated in photoshop. Image data then was serialized with a custom JS tool, and the prototype was also done in Javascript: http://iparigrafika.hu/bitmap/sintest2.html Edited March 1, 2015 by AbelVincze Quote Link to post Share on other sites
nglevin Posted March 1, 2015 Report Share Posted March 1, 2015 (edited) Interesting! I'd be curious to see how well JavaScript Canvas maps to QuickDraw. Or, well, you probably just wrote to a straight byte buffer in VRAM, which sounds like the fastest approach of all. My 33 Mhz Quadra has a Radius Thunder IV card used to accelerate QuickDraw calls, so it's a bit more capable of handling 2D graphics than the average 68k Mac. It still doesn't handle Steven Troughton-Smith's color 68k port of Lights Off without visible slowdown and redrawing, so I'd like to see what it takes to get fast graphics on these machines. It handles Marathon 1 (with low-res textures) and M1 mods like Trojan and Operation Tantalus pretty well, though. Edited March 1, 2015 by nglevin Quote Link to post Share on other sites
AbelVincze Posted March 1, 2015 Author Report Share Posted March 1, 2015 I don't use quickdraw at all, just direcrt write to VRAM as you mentionned. The JS prototype is for testing the effect, if it looks nice or not. The article about porting codes between OS X and classic OS with 68k support is quiet interesting. Quote Link to post Share on other sites
AbelVincze Posted March 2, 2015 Author Report Share Posted March 2, 2015 (edited) Here are the sources: http://iparigrafika.hu/retrocomputing/macc_sources.zip Mac Intro V2 is still flickery on Mac Classic II, it seems the DYCP code needs to be optimalized, converting the image renderer codes from C to ASM was't enough. The apps will run on 512x342 and 640x480 @ 1bit (the screen depth is changed automatically) If you have larger resolution, please set it to one of the supported. The sources are not well commented yet... Edited March 2, 2015 by AbelVincze Quote Link to post Share on other sites
nglevin Posted March 2, 2015 Report Share Posted March 2, 2015 Thanks! The assembly code looks very nice, I appreciate the use of macros as nice, organized subroutines. Unfortunately, with my current setup, I'm having trouble running the compiled V1.0 app without seeing a distorted picture on my Quadra 800. This is 1 bit B&W, 640x480 resolution on Mac OS 8.1. V2.0 is crashing with a bus error at an address pointing to an AND.W call in ASMdycp64. I don't know enough about MacsBug to really understand the V2.0 crash better than that. Without MacsBug present, it's an error Type 10 that doesn't even allow me to reset Mac OS. Results are the same with extensions disabled. I've also tried building both projects from source with CodeWarrior Pro 4. It didn't like the project files, as CodeWarrior 4 is too old for the IDE that comes with CWP4. I just create a new project, imported all source code files, and built with the same results as above. At least nothing else broke! Always a good sign. I even tried pulling out most of the NuBus cards (except the ATTO SiliconExpress IV), all but 32 MB of RAM, all the VRAM, and the custom Dougg3 ROM to get this machine as close to stock as I could with 8.1 and all extensions disabled. Same problems with the V1.0 binary, no changes observed. *phew* It was worth a try. I'll let you know if I come up with any creative ideas, but in the meantime, I'll try to capture some cell phone camera footage. Quote Link to post Share on other sites
nglevin Posted March 2, 2015 Report Share Posted March 2, 2015 ShakyCam debugging! About as close to a good bug report as I can get at the moment, without knowing the MacsBug equivalent of thread apply all backtrace. Quote Link to post Share on other sites
AbelVincze Posted March 2, 2015 Author Report Share Posted March 2, 2015 oh... i'm a bit sad that it didn't worked. I will try to find out why... Quote Link to post Share on other sites
nglevin Posted March 2, 2015 Report Share Posted March 2, 2015 (edited) No worries sir, things not working the first time is just a natural part of software development! I was taking a look at Inside Macintosh for "Imaging with QuickDraw" and later today, "Macintosh Toolbox Essentials" (for windowing) to see if I could figure out the V1 problem. I'm assuming there's something wrong about how the app is handling the screen's scale, because I see what should be all of the objects animating on screen, they're just squished as though they're being drawn in the wrong places. EDIT: I also checked the monitor settings to see if the app might be accidentally changing the resolution when it doesn't have to. Right now, I'm using an adapter with this flat panel VGA monitor that reports it as a 640 x 480, 67 Hz monitor, it can't go any higher or lower. Therefore, I think that possibility can be ruled out. Edited March 2, 2015 by nglevin Quote Link to post Share on other sites
AbelVincze Posted March 2, 2015 Author Report Share Posted March 2, 2015 Yes, i know, the problem is that at the moment i do not have any idea what could cause that issue. I'm using OS globals to get the VRAM base address.... and funny but as i wrote these words, i just remember that there is two way to get that base address, and i'm using the Old way... It is possible that as you're using OS 8, the values a get from the OS globals is false, and points to nowhere, and this causes the app crashing. The next week i will have a "new" LC 475, that supports OS 8, and i will install it next to OS 7... Quote Link to post Share on other sites
AbelVincze Posted March 13, 2015 Author Report Share Posted March 13, 2015 I fixed the source files for the first app to run on LC 475 as well: http://iparigrafika.hu/retrocomputing/files/MacIntroV1.sit Quote Link to post Share on other sites
nglevin Posted March 14, 2015 Report Share Posted March 14, 2015 Lookin good on my Quadra 800, sir! If I run into anything else about getting around that 64 KB data fork limit for apps (still assume it's a 68000 limitation), I'll let you know. Quote Link to post Share on other sites
AbelVincze Posted March 14, 2015 Author Report Share Posted March 14, 2015 I'm happy it work on a Quadra 800 too. May i ask which OS is it running? The 64 KB data limit has been fixed it was just a linking setting. Another 2 little app is coming soon. Quote Link to post Share on other sites
nglevin Posted March 14, 2015 Report Share Posted March 14, 2015 Mac OS 8.1, still. Quote Link to post Share on other sites
AbelVincze Posted March 14, 2015 Author Report Share Posted March 14, 2015 And another source: http://iparigrafika.hu/retrocomputing/files/MacIntroV2.sit Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.