+xucaen Posted June 12, 2014 Share Posted June 12, 2014 So, today I dug into the Removers C Library and the Jaguar C Library, both source and "binaries", from http://removers.free.fr/softs/download.php?lang=en. I noticed some source code is missing. For example, there is collision.o and collision.h but no collision.c. My assumption is that the Jaguar C Library came direct from Atari and they didn't want to share. Does anyone know why it is missing or where I can find the source? Quote Link to comment Share on other sites More sharing options...
GT Turbo Posted June 13, 2014 Share Posted June 13, 2014 You're wrong. I'm not in love with the C langage, i can't help but i will contact SebRmv who has wrote all that and will give you all infos and tricks. Quote Link to comment Share on other sites More sharing options...
ggn Posted June 13, 2014 Share Posted June 13, 2014 There's collision\collision.s ... Quote Link to comment Share on other sites More sharing options...
+xucaen Posted June 13, 2014 Author Share Posted June 13, 2014 There's collision\collision.s ... where? Quote Link to comment Share on other sites More sharing options...
GT Turbo Posted June 13, 2014 Share Posted June 13, 2014 Yew, colision.s who is a enhanced version of an idea of Patrice Mandin (Who has used blitter for collision test on Ste). With Seb we have ported it to the Jaguar and after Seb has done a new faster version. Quote Link to comment Share on other sites More sharing options...
+xucaen Posted June 13, 2014 Author Share Posted June 13, 2014 Yew, colision.s who is a enhanced version of an idea of Patrice Mandin (Who has used blitter for collision test on Ste). With Seb we have ported it to the Jaguar and after Seb has done a new faster version. It sounds like you are saying it is available someplace, but it looks like they did not include collision.s in the removers gzip archive. Now I'm curious - was that intentional? Quote Link to comment Share on other sites More sharing options...
+xucaen Posted June 13, 2014 Author Share Posted June 13, 2014 Ok, I found it. I had to download the gz file a second time and I used a different tool to unpack it. I'm using windows, so I guess the tool I had used wasn't 100% compatible and some folders seemed to be missing. I got it now. Sorry for the confusion!! Quote Link to comment Share on other sites More sharing options...
Chilly Willy Posted June 13, 2014 Share Posted June 13, 2014 (edited) Any particular reason not to use newlib for libc? That's what I do in all my toolchains for other consoles. Yes, a specific libc for a console will be smaller and faster, but if you're using a libc function in a place in your code where the size or speed makes ANY difference at all, you're doing it wrong. Hand-coded libc is for 8-bit consoles. Edited June 13, 2014 by Chilly Willy Quote Link to comment Share on other sites More sharing options...
+xucaen Posted June 14, 2014 Author Share Posted June 14, 2014 I never said anything about any other library. I can only study so much at one time. I took today off to play some games. Post some links to those libraries and I'll take a look. Thanks! Quote Link to comment Share on other sites More sharing options...
Chilly Willy Posted June 15, 2014 Share Posted June 15, 2014 Newlib is one of the most popular implementations of the C libs. It gives full libc and libm on almost any processor or platform. https://sourceware.org/newlib/ On the 68000, libm uses software floating point, so it's not going to be super fast, but it's not too bad. Just keep the floats out of the main loop. On many processors, things like memset and memcpy have been optimized to be as fast as possible. Anywho, you get all those nice things, like vsprintf() that most hand-coded libc implementations don't have. Having used the 68000 compile of newlib on the Sega Genesis, I can say that using newlib is not a problem on a low-end console. My toolchains always compile a full C/C++ compiler with newlib libs. Now, making a compile of newlib for the JRISCs... that would be a challenge. 3 Quote Link to comment Share on other sites More sharing options...
GT Turbo Posted June 15, 2014 Share Posted June 15, 2014 . Now, making a compile of newlib for the JRISCs... that would be a challenge. Juste use Assembler !!! 1 Quote Link to comment Share on other sites More sharing options...
Chilly Willy Posted June 15, 2014 Share Posted June 15, 2014 Juste use Assembler !!! That's what I mean - since newlib REQUIRES gcc to compile, you're better off with a hand-written assembler libc for the GPU/DSP. At least for now. Libraries like libc and libm would be one of the candidates for running GPU code from the main ram. You don't need the ultimate in speed, and the space wasted for a full libc/libm is less of an issue for main ram than local ram. 2 Quote Link to comment Share on other sites More sharing options...
+xucaen Posted June 16, 2014 Author Share Posted June 16, 2014 I'm not sure how this turned into a c library discussion. I was only inquiring about the Removers source. Quote Link to comment Share on other sites More sharing options...
JagChris Posted June 16, 2014 Share Posted June 16, 2014 I'm not sure how this turned into a c library discussion. I was only inquiring about the Removers source. I think Chilly was just trying to help you find alternatives along those lines. Quote Link to comment Share on other sites More sharing options...
GT Turbo Posted June 16, 2014 Share Posted June 16, 2014 You don't need the ultimate in speed. So why coding on RISC, if you don't need speed ? You can do everything on the 68000, which is faster than RISC in main. 1 Quote Link to comment Share on other sites More sharing options...
+xucaen Posted June 16, 2014 Author Share Posted June 16, 2014 I was specifically referring to the Jaguar specific source, such as collision, sprite, etc. Quote Link to comment Share on other sites More sharing options...
Chilly Willy Posted June 18, 2014 Share Posted June 18, 2014 My point was that for the 68000, newlib will be a better libc, which was the topic of the OP. A custom C Library is only needed for the GPU/DSP. Unless the OP was badly written... instead of "the Removers C Library and the Jaguar C Library", perhaps he meant "the Removers Library, and the Jaguar Library" which both are in C as that's all this is available, so saying so is kinda redundant as well as misleading. When you say "C Library", you are talking about libc and/or libm. If you mean any old library written in C, you do not call it "the C Library" as that already has a specific meaning to programmers. Quote Link to comment Share on other sites More sharing options...
+xucaen Posted June 18, 2014 Author Share Posted June 18, 2014 I thought the c "libraries" I mentioned in my op were specific to the Jaguar. It was not my intention to include any standard c library in my post. Badly written? Only in so far as my knowledge and understanding of Jaguar hombrew is bad. But such is the way of the newbiew. My apologies. So, let's move on from here. I understand now that Removers C and Jaguar C also include some pieces of the standard c library. I have also found the specific source code I was originally looking for. I'm am not at a point where I am concerned with calculating the efficiencies of compiled binaries for the Jaguar. I'm still gathering my information and learning what I can when I have time. Is there something else missing from the Removers C and Jaguar C libraries that I need to know about at this stage? I appreciate all of your help. Thanks! Quote Link to comment Share on other sites More sharing options...
SebRmv Posted June 18, 2014 Share Posted June 18, 2014 (edited) So, today I dug into the Removers C Library and the Jaguar C Library, both source and "binaries", from http://removers.free.fr/softs/download.php?lang=en. I noticed some source code is missing. For example, there is collision.o and collision.h but no collision.c. My assumption is that the Jaguar C Library came direct from Atari and they didn't want to share. Does anyone know why it is missing or where I can find the source? Hello, collision.s is located in rmvlib/collision (as said by others previously). Regarding jlibc, this is the result of my own work, except the implementation of malloc. This is only a partial implementation of the standard C library. In practice, my guess is that it is sufficient for the Jaguar. Cheers Seb PS: I initially wanted to go with newlib but found it was too heavy for the Jag... maybe I was wrong. Anyway, you can see that some parts of jlibc are pure assembly code (for instance memcpy/memmove) PPS: you can clone the jlibc and rmvlib repository from github Edited June 18, 2014 by SebRmv 4 Quote Link to comment Share on other sites More sharing options...
Chilly Willy Posted June 19, 2014 Share Posted June 19, 2014 PS: I initially wanted to go with newlib but found it was too heavy for the Jag... maybe I was wrong. Anyway, you can see that some parts of jlibc are pure assembly code (for instance memcpy/memmove) Newlib should be fine for the 68000. As I mentioned, I've never had a problem using it on the Sega Genesis with only 64KB of ram and it's 7.6MHz 68000. However, you probably DO want some things done as optimized assembly that takes into account the Jaguar hardware. Your example of memcpy/memmove is a perfect example. While newlib's memcpy/memset/memmove is good, it couldn't hold a candle to something using the BLITTER, for example. I would probably use newlib for most things, and a special version to take advantage of the Jaguar... say jmemcpy/jmemset/jmemmove, and maybe bmemcpy/bmemset/bmemmove to specify a version that uses the blitter. 1 Quote Link to comment Share on other sites More sharing options...
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.
Note: Your post will require moderator approval before it will be visible.