Yes, the programming techniques for any newer console are derived from the ones used on the last console. Some things get simpler, some things get more complicated. The PS2 and PSP devkits the Sony sells to developers can't be in much demand at this point; it makes perfect sense to convert all those very pricey business assets into some kind of accountable "good will" and at the same time train new developers in the twisted Sony way. Microsoft has a big advantage (in terms of training developers) in that the Xbox and X360 development environments are based on Direct X and on Visual Studio which are accessible to the general public and in fact have enormous user bases already. To those people who would reject the opportunity to learn PlayStation coding - based on Sony's reputation for evil - I say 'fine by me'. The fewer coders I have to compete with, the more my skillz are worth in the market.
(farther and farther off topic) Actually, the Genesis emulation for SGC was created 'from scratch' by Digital Eclipse (starting with existing 68k and Z80 cores). Steve Snake was indeed involved, primarily in the area of sound emulation, but the main emulation was not based on his fabulous Kega work.
Actually at least the most recent titles Sega Genesis Collection (PS2/PSP) and Sega Vintage Collection (Xbox 360 Live Arcade) definitely do _not_ use open source emulation. Digital Eclipse (aka Backbone) has proprietary emulation code which is used in many many emulation compilations. Open source emulation code (such as Gens) tends to rely on a patchwork of code from various sources (68000 core, Z80 core, sound chips, and so on) which would make it extremely difficult (or impossible) to properly license it as a package for commercial release.
I haven't paid for recorded music in a long time, and will not do so again until things change for the better. I eagerly await the day when 1) DRM-free files or CDs cost less than DVD movies (around $5 US would be just fine for an album) 2) The mafiaa isn't insulting/threatening/suing us.... when that happens I'll be happy to go back to the pre-net ways of using available cash to fill my closet or HD with music, and shopping in bricks-or-no-bricks stores for music.
Those starving stunt men who show up in front of otherwise legitimate movies to warn us about how we (the theater-going evildoers of the world) are denying their kids a college education... I SAY LET THEM EAT CAKE. Let's take up a collection... and hire them to drive cars off cliffs...said cars to be filled with DRM executives and other such indispensible consumer-value-enhancers.
Addendum to Hint 2: Compilers don't like excessively large compilation units; particularly the optimization of such beasts. You will be fine putting 256 opcodes in a switch (say for 6502); but I've had lots of ominous warnings from compiling Z80 emulator code that's too monolithic... and of course a single-switch 68000 function would be right out.
This isn't the answer to your big question but here's how I started writing emulators: By writing a disassembler. A working disassembler is halfway to being an emulator... in one of those oh-so-common-in-programming 'half an iceberg' ways.
A disassembler a) has one 'register' variable : the PC; it walks straight through the ROM image. b) prints the current instruction and operands, and advances the PC.
An emulator a) has a variable for each register, and arrays for RAM and other address-mapped hardware. b) acts out the current instruction and operands, using the 'register' variables. c) allows the PC to be changed when a branch/call/jump/return/interrupt is executed. d) counts an appropriate number of instructions (usually a single scanline, or a complete TV scan) and then performs some output [such as rendering part of the RAM array into a bitmap].
This is pretty simplified but I would say you DON'T need to: 1) look at a completed open source emulator (at first). You may dig for a long time before you find the guts of it. 2) worry about digging into JIT or the assembly language of the host processor; a modern machine is fast enough to run one interpreted instruction at a time. If you're emulating one of the 8-bit era chips (Z80, 6502) or 68000 it almost doesn't matter how slow your code is. [Hint: you do need a jump table for the opcode handlers.]
If you're building your own emulation from the ground up (which I recommend if you want to find out how things work), you WILL eventually want to look at other people's CPU cores - they will generally act as verification, expansion, and correction to the official CPU manufacturers documentation.
There's not really any practical way of preventing scalping is there? - float the price high enough to stifle demand (almost there already!) - somehow make a PS3 un-transferrable (can you imagine the screams?) - magically come up with more PS3s - wait until the factories are running full-bore before starting to release any PS3s
Now, concert and sport ticket scalping is another story, but not I think relevant here.
Anyhow IMO blaming Sony for this -- or even really considering it to be a problem -- is pretty mistaken. Some homeless guys don't get to play with their new PS3s... I'm crying my little heart out here.
Perhaps they've realized (from the history of PSP) that if they keep a bunch of features in reserve, they can keep forcing customers to 'upgrade' their firmware and progressively closing software loopholes which would otherwise let customers use their own device in useful but uncommercial ways.
In other words, you can expect the PlaysForSure 'upgrade' to be released as soon as the first crack of their current DRM becomes public.
It's a total toss up for me on which I'll have more fun not buying; Vista or a PS3. On the one hand, not buying Vista is a Genuine Advantage in many ways... but by not buying a PS3, I save more money and also get the bonus of not upgrading to newer DRM.
I can already picture the audiophile products which will at no small cost somehow imbue the air in your living room with better wireless transmission characteristics... Maybe even a vacuum chamber so you don't degrade your digital transmission. It sure would suck to have your bits coming through the ether in low fidelity.
Of course we all know that movies looked better on vinyl anyway.
FTA: "Songs can be sold [...] in non-copyright-protected MP3 digital file format [...]"
This is a perfect horrible example of a 'innocent' slip which conflates DRM with copyright; it cooperates with the corporate worldview that DRM is necessary to protect copyright. I don't know how to get in touch with the author but I would really love to set this kind of thing straight.
RMS may be a freak but I think he's right in that we have to be careful about the language we use; it defines and affects the thought patterns of both speaker and listener.
I'd love to see a particular "it's" warning in the message-posting process. As in, when you submit your article or post containing that particular contraction, the system asks you if you know the difference between "it's" and "its" and if you're sure you used the right one. This particular user error is seen way, way too often around here and drags us all down.
The LaunchCast people, whom we'd mostly never heard of until today, just got a bunch of "free" advertising from the very people they are already 3/4 in bed with. The RIAA knows we all hate them already... but as of today their (secret) buddies at LaunchCast have our support and goodwill. It all starts to make sense now... the enemy of my enemy must be my friend, even if they're really working together?
He must not have caught on to the cute fact that Gattaca is spelled from only the dna-relevant letters G-A-T-C... maybe he's just not meant to reproduce.
Although the upcoming AGB is likely to diminish that pool of coders back to near extinction, the Color Game Boy has probably been one last "hurrah" for the bare-metal game programmer. I've optimized cycles and opcode bytes on the thing (older gb first) for a decade - I hand converted line-by-line the 6809 source code for Defender & Joust to run them on the Color Game Boy. So I say, we're still out here. For a little while. (The AGB supports C++, woo hoo!)
There's a reason you can't think of an instance where the copy protection held: whatever "it" was that couldn't be cracked never got distributed very well and thus languished securely in oblivion.
That little problem goes right away... just add "Elvis Aaron Presley" to the no-fly list.
We is all secured again, and permanently this time!
Yes, the programming techniques for any newer console are derived from the ones used on the last console. Some things get simpler, some things get more complicated. The PS2 and PSP devkits the Sony sells to developers can't be in much demand at this point; it makes perfect sense to convert all those very pricey business assets into some kind of accountable "good will" and at the same time train new developers in the twisted Sony way. Microsoft has a big advantage (in terms of training developers) in that the Xbox and X360 development environments are based on Direct X and on Visual Studio which are accessible to the general public and in fact have enormous user bases already. To those people who would reject the opportunity to learn PlayStation coding - based on Sony's reputation for evil - I say 'fine by me'. The fewer coders I have to compete with, the more my skillz are worth in the market.
(farther and farther off topic)
Actually, the Genesis emulation for SGC was created 'from scratch' by Digital Eclipse (starting with existing 68k and Z80 cores). Steve Snake was indeed involved, primarily in the area of sound emulation, but the main emulation was not based on his fabulous Kega work.
Actually at least the most recent titles Sega Genesis Collection (PS2/PSP) and Sega Vintage Collection (Xbox 360 Live Arcade) definitely do _not_ use open source emulation. Digital Eclipse (aka Backbone) has proprietary emulation code which is used in many many emulation compilations. Open source emulation code (such as Gens) tends to rely on a patchwork of code from various sources (68000 core, Z80 core, sound chips, and so on) which would make it extremely difficult (or impossible) to properly license it as a package for commercial release.
I haven't paid for recorded music in a long time, and will not do so again until things change for the better. ... when that happens I'll be happy to go back to the pre-net ways of using available cash to fill my closet or HD with music, and shopping in bricks-or-no-bricks stores for music.
I eagerly await the day when
1) DRM-free files or CDs cost less than DVD movies (around $5 US would be just fine for an album)
2) The mafiaa isn't insulting/threatening/suing us.
Those starving stunt men who show up in front of otherwise legitimate movies to warn us about how we (the theater-going evildoers of the world) are denying their kids a college education... ...said cars to be filled with DRM executives and other such indispensible consumer-value-enhancers.
I SAY LET THEM EAT CAKE. Let's take up a collection... and hire them to drive cars off cliffs
Addendum to Hint 2: Compilers don't like excessively large compilation units; particularly the optimization of such beasts. You will be fine putting 256 opcodes in a switch (say for 6502); but I've had lots of ominous warnings from compiling Z80 emulator code that's too monolithic... and of course a single-switch 68000 function would be right out.
This isn't the answer to your big question but here's how I started writing emulators:
By writing a disassembler. A working disassembler is halfway to being an emulator... in one of those oh-so-common-in-programming 'half an iceberg' ways.
A disassembler
a) has one 'register' variable : the PC; it walks straight through the ROM image.
b) prints the current instruction and operands, and advances the PC.
An emulator
a) has a variable for each register, and arrays for RAM and other address-mapped hardware.
b) acts out the current instruction and operands, using the 'register' variables.
c) allows the PC to be changed when a branch/call/jump/return/interrupt is executed.
d) counts an appropriate number of instructions (usually a single scanline, or a complete TV scan) and then performs some output [such as rendering part of the RAM array into a bitmap].
This is pretty simplified but I would say you DON'T need to:
1) look at a completed open source emulator (at first). You may dig for a long time before you find the guts of it.
2) worry about digging into JIT or the assembly language of the host processor; a modern machine is fast enough to run one interpreted instruction at a time. If you're emulating one of the 8-bit era chips (Z80, 6502) or 68000 it almost doesn't matter how slow your code is. [Hint: you do need a jump table for the opcode handlers.]
If you're building your own emulation from the ground up (which I recommend if you want to find out how things work), you WILL eventually want to look at other people's CPU cores - they will generally act as verification, expansion, and correction to the official CPU manufacturers documentation.
There's not really any practical way of preventing scalping is there?
- float the price high enough to stifle demand (almost there already!)
- somehow make a PS3 un-transferrable (can you imagine the screams?)
- magically come up with more PS3s
- wait until the factories are running full-bore before starting to release any PS3s
Now, concert and sport ticket scalping is another story, but not I think relevant here.
Anyhow IMO blaming Sony for this -- or even really considering it to be a problem -- is pretty mistaken.
Some homeless guys don't get to play with their new PS3s... I'm crying my little heart out here.
Perhaps they've realized (from the history of PSP) that if they keep a bunch of features in reserve, they can keep forcing customers to 'upgrade' their firmware and progressively closing software loopholes which would otherwise let customers use their own device in useful but uncommercial ways.
In other words, you can expect the PlaysForSure 'upgrade' to be released as soon as the first crack of their current DRM becomes public.
It's a total toss up for me on which I'll have more fun not buying; Vista or a PS3.
On the one hand, not buying Vista is a Genuine Advantage in many ways...
but by not buying a PS3, I save more money and also get the bonus of not upgrading to newer DRM.
Thank goodness I can afford to do both!
or 50 kB if you encode it as BCD, or less than that represented in binary...
Sounds like you meant (but didn't name) Grace Hopper, who (IIRC) was associated with the development of ADA.
http://www.sdsc.edu/ScienceWomen/hopper.html
I can already picture the audiophile products which will at no small cost somehow imbue the air in your living room with better wireless transmission characteristics...
Maybe even a vacuum chamber so you don't degrade your digital transmission. It sure would suck to have your bits coming through the ether in low fidelity.
Of course we all know that movies looked better on vinyl anyway.
FTA: "Songs can be sold [...] in non-copyright-protected MP3 digital file format [...]"
This is a perfect horrible example of a 'innocent' slip which conflates DRM with copyright; it cooperates with the corporate worldview that DRM is necessary to protect copyright. I don't know how to get in touch with the author but I would really love to set this kind of thing straight.
RMS may be a freak but I think he's right in that we have to be careful about the language we use; it defines and affects the thought patterns of both speaker and listener.
Resurrecting a sales slump? Sounds like Sony will be all over THAT action...
I'd love to see a particular "it's" warning in the message-posting process. As in, when you submit your article or post containing that particular contraction, the system asks you if you know the difference between "it's" and "its" and if you're sure you used the right one. This particular user error is seen way, way too often around here and drags us all down.
I _just_ finished reading "Slant" by Greg Bear from back in 1997... it's sort of Snowcrash-y but involves bacterial computation.
You'd think someone would have pointed out to Tiger that this has been tried before and didn't end with happy results for the complainant...
... OS X 10.5 'DAK'.
Maybe they should license 'DAK' so they can give a boost to Tiger's competition instead.
yeah
The LaunchCast people, whom we'd mostly never heard of until today, just got a bunch of "free" advertising from the very people they are already 3/4 in bed with. The RIAA knows we all hate them already... but as of today their (secret) buddies at LaunchCast have our support and goodwill. It all starts to make sense now... the enemy of my enemy must be my friend, even if they're really working together?
He must not have caught on to the cute fact that Gattaca is spelled from only the dna-relevant letters G-A-T-C ... maybe he's just not meant to reproduce.
Although the upcoming AGB is likely to diminish that pool of coders back to near extinction, the Color Game Boy has probably been one last "hurrah" for the bare-metal game programmer. I've optimized cycles and opcode bytes on the thing (older gb first) for a decade - I hand converted line-by-line the 6809 source code for Defender & Joust to run them on the Color Game Boy. So I say, we're still out here. For a little while. (The AGB supports C++, woo hoo!)
There's a reason you can't think of an instance where the copy protection held: whatever "it" was that couldn't be cracked never got distributed very well and thus languished securely in oblivion.